我正在使用angular $filter("filter")
来过滤数组o对象。由于我有一个复杂的过滤,我决定定义一个比较器。尽管如此,在我的比较器中,只有过滤表达式上出现的属性可用
var array = [
{"id": 1, "placeId":253, "name":"John"},
{"id": 2, "placeId":253, "name":"Jane"},
{"id": 3, "placeId":32, "name":"Mike"},
{"id": 4, "placeId":89, "name":"Ana"}
];
var awesomeFiltering = function(){
return $filter("filter")(array, {"placeId":253}, function(actual expected){
// "actual" brings only the value for placeId attribute!
// How do I access attribute "name", for example?
});
};
如何从比较器内的对象访问其他属性?
答案 0 :(得分:2)
comparator
仅用于从定义的表达式{"placeId":253}
中检索的值。由于您的表达式仅包含placeId
,因此您可以在comparator
中检索唯一值。
但是,您可以使用自定义过滤器expression
,而无需使用comparator
进行复杂过滤。
var awesomeFiltering = function(){
return $filter("filter")(array, function(value, index, array){
return value.placeId === 253 && value.name === "John";
});
};