我创建了一个filter
我要传递一个item属性,而不是项目本身。这可能吗?
以下不起作用(item.param1失败):
ng-reapeat="item in items | filter : fnFilter(item.param1)"
$scope.fnFilter = function(value) {
return value == "test";
}
答案 0 :(得分:1)
你的问题还不清楚,因为你不能说出你的目标是什么。
所以,如果我只是限制我在那里看到的内容,并按照@CeylanMumumKocabas已经提供的链接Angular filter exactly on object key进行操作
ng-repeat="item in items | filter:{'param1': 'test'}"
现在让我们考虑你想要更复杂的东西:我看到的唯一方法是将属性的名称传递给过滤器:
ng-reapeat="item in items | myFilter:'param1'"
myApp.filter('myFilter', function () {
return function(inputs,attributeName) {
var output = [];
angular.forEach(inputs, function (input) {
if (input[attributeName] == 'test')
output.push(input);
});
return output;
};
});
请注意,如果您想要使用多个级别,则必须使用$ eval或make添加一些代码才能使用。