使用独特过滤器时,如何设置ng-repeat的选定值?
<div ng-controller="myAppList">
<select ng-model="query" ng-options="c.cat as c.cat for c in products | unique:'cat'">
<option value="0">Default</option>
</select>
<ul>
<li ng-repeat="c in products | filter:{cat:query}">
{{c.name}}
</li>
</ul>
</div>
应用:
myApp.controller('myAppList', function myAppList($scope) {
$scope.products = [
{'name': 'Product 1', 'cat':'Cat 1',id:1},
{'name': 'Product 2', 'cat':'Cat 2',id:2},
{'name': 'Product 3', 'cat':'Cat 2',id:3},
{'name': 'Product 4', 'cat':'Cat 3',id:4},
{'name': 'Product 5', 'cat':'Cat 3',id:5},
{'name': 'Product 6', 'cat':'Cat 2',id:6},
];
let index = $scope.products.map(function (x) { return x.id; }).indexOf(5);
console.warn(index);
$scope.query=$scope.products[index];
});
答案 0 :(得分:1)
你几乎没事。
$scope.query=$scope.products[index].cat;
^^^
使用unique
过滤器,您指定cat
作为要过滤的属性,因此您必须设置的$scope.query
值应为相应的cat
值。