这是关于AngularJS。
我的$ scope中有2个列表:
SELECT * FROM MyTable WHERE 'Name' NOT LIKE Kitty
我正在生成一个"添加到收藏夹" HTML列表:
$scope.cars = [{ name: 'Audi', price: '...' }, { name: 'BMW', price: '...' }];
$scope.favorites = ['Audi'];
但我希望没有"添加到"已经存在于我最喜欢的列表中的汽车按钮。
这可能是:
<ul>
<li ng-repeat="car in cars"><button ng-click="addToFav($index)">Add to favourite</button></li>
</ul>
在ng-repeat语句中?
答案 0 :(得分:1)
创建过滤器:
angular.module('app').filter('isNotInArray', function () {
return function (arr, targetArr, prop) {
return arr.filter(function (item) {
return targetArr.indexOf(item[prop]) === -1;
});
};
});
然后使用:
<li ng-repeat="car in cars | isNotInArray:favorites:'name'">
答案 1 :(得分:0)
您还可以在汽车列表中添加新密钥并查看usgin ng-if条件
$scope.cars = [{ name: 'Audi', price: '...', isFav:true }, { name: 'BMW', price: '...', isFav:false }];
$scope.favorites = ['Audi'];