转换 ng-repeater 多级值

Convert ng-repeater multi-level values

我正在尝试解决两个问题(即使其中一个不是真正的问题)。

我必须遍历两级对象数组,它看起来很像这样:

{"id": "1","details": [{"name": "Name 1","surname": "Surname 1"}]},
{"id": "2","details": [{"name": "Name 2","surname": "Surname 2"}]},
{"id": "3","details": [{"name": "Name 3","surname": "Surname 3"}]},
{"id": "4","details": [{"name": "Name 4","surname": "Surname 4"}]}

我还需要转换打印值,使用ID作为参数:

$scope.convert = function (id){
  switch (id) {
    case "1":
       $scope.role = "role 1"
    break;
    case "2":
       $scope.role = "role 2"
    break;
    case "3":
       $scope.role = "role 3"
    break;
    case "4":
       $scope.role = "role 4"
    break;
  }
}

现在,在 html 中,这是我目前拥有的:

<h3>Works - with nested repeaters</h3>
<ul ng-repeat="i in items" ng-click="convert('{{i.id}}')">
   <ul ng-repeat="a in i.details">
      {{a.name}}
   </ul>
</ul>  
<br/>
{{role}}

下面是问题:

这是我上面描述的内容:http://codepen.io/anon/pen/YqXBqN?editors=1010

您需要更改转换方法,例如 -

 $scope.convert = function (id){
     switch (id) {
        case "1":
         return "role 1"
        break;
        case "2":
         return "role 2"
        break;
        case "3":
         return "role 3"
        break;
        case "4":
         return "role 4"
        break;
      }

    }

然后将您的 html 更新为-

<ul ng-repeat="i in items" ng-click="convert('{{i.id}}')">
      <ul ng-repeat="a in i.details">
        {{i.id}} - {{a.name}}- {{convert(i.id)}}

      </ul>
    </ul>  

它的输出将-

1- Name 1 -role 1
2- Name 2 -role 2
3- Name 3 -role 3
4- Name 4 -role 4

语法错误 ng-click="convert('{{i.id}}')" 应转换为 ng-click="convert(i.id)"

而不是声明一个 role 变量值 将属性添加到模型中,因为 id 很重要

$scope.addRole = function (model){
    var id = '' + model.id;
    switch (id) {
        case "1":
            model.role = 'role 1';
            break;
        case "2":
            model.role = 'role 2';
            break;
        case "3":
            model.role = 'role 3';
            break;
        case "4":
            model.role = 'role 4';
            break;
    }
}

html

<ul ng-repeat="i in items">
    {{addRole(i)}}
    {{i.id}} - {{i.role}}
</ul>