如何在angularjs中的ng-repeat生成的过滤器中传递值

时间:2015-10-13 10:03:57

标签: angularjs angularjs-filter

我有如下表格的ng-repeat。我想要做的是在过滤器中传递t.genre的值,但它不起作用。当值得到。它过滤该值的名称对象并将其显示在td中。例如,值为10,那么将显示的名称是爵士乐。

注意:当我将t.genre更改为10时,我得到的输出是:

1 simon 10 jazz 8 betty 20 jazz 14 archie 30 jazz 3 jumbo1 40 jazz

我想要的是:

1 simon 10 jazz 8 betty 20 rock 14 archie 30 classic 3 jumbo1 40 metal

的index.html:

  <tr ng-repeat="t in users">
      <td>{{t.id}}</td>
      <td>{{t.username}}</td>
      <td>{{t.genre}}</td>
      <td ng-repeat="typ in genre | filter:{ 'id':t.genre}:true">{{typ.name}}</td>
  </tr>

和我的controller.js:

 function Ctrl($scope) {
 $scope.users = [
    {"id":1,"username":"simon","genre":"10"},
    {"id":8,"username":"betty","genre":"20"},
    {"id":14,"username":"archie","genre":"30"},
    {"id":3,"username":"jumbo1","genre":"40"},
 ];

 $scope.genre = [
     {"id":10,"name":"jazz",},
     {"id":20,"name":"rock",},
     {"id":30,"name":"classic",},
     {"id":40,"name":"metal"},
 ];
}

小提琴链接:http://jsfiddle.net/DharkRoses/dk247c3z/1/

任何hlp和建议先谢谢。

2 个答案:

答案 0 :(得分:1)

this您要找的是什么?

过滤器语法存在问题:

<td ng-repeat="typ in genre | filter:t.genre">{{typ.name}}</td>

让我知道

答案 1 :(得分:1)

您可以按t.genre

过滤它

http://jsfiddle.net/maio/dk247c3z/2/