Angular ng选项和过滤器

时间:2014-09-03 18:27:54

标签: angularjs

我试图在ngOptions上过滤数组:

这里有一个plunkr:http://plnkr.co/edit/OxL84mDdma9iS13wMnIX?p=preview

我有这个数组:

  $scope.keys = [  { 
                id: 1,
                name: 'ddddggggggggggggggggg',
                applicationKey: 'dssssssssssssss',
                kind: 'pingdom',
               } ,  { 
                id: 2,
                name: 'Ddd',
                kind: 'moz',
                accessId: 'ssss',
                secretKey: 'aaaa',
               } ,  { 
                id: 3,
                name: 'MyAlexa',
                kind: 'alexa',
                secretAccessKey: 'ssssssssssssssssss',
                accessKeyId: 'ssssssss',

               }
            ]

我试图使用像这样的东西过滤:

    <select name="key" ng-model="keys" 
      ng-options="k.name for k in keys track by k.id | filter: {kind: 'alexa'}" >
    </select>

2 个答案:

答案 0 :(得分:1)

也许您可能想要执行以下操作:

<select name="key"
        data-ng-model="keys" 
        data-ng-options="key.name for key.name in keys | filter: { kind: 'alexa' } track by key.id">
</select>

应用过滤器后,您必须拥有track by

修改

您在标记中遇到的唯一问题是过滤器之前的track by表达式。其余的差异只是个人偏好。

答案 1 :(得分:0)

试试这段代码。

<select name="key" ng-model="keys" 
          ng-options="k.name for k in keys  | filter: {kind: 'alexa'}" >
        </select>