<div "ng-repeat="phone in phoneList| filter:filterPrice">
//custome filter
$scope.filterPrice = function (phone) {
return (phone.price > MIN_VAL && phone.price < MAX_VAL);};
MAX_VAL和MIN_VAL是我从输入获得的输入值,我必须在MAX_VAL或MIN_VAL更改时更新phoneList。 我正在改变值的事件,但如何在列表中更新?
答案 0 :(得分:1)
您可以使用filter
为此过往用户输入minValue
和maxValue
进行过滤。
<li ng-repeat="phone in phoneList | filterPrice:maxValue:minValue">
{{ phone }}
</li>
根据您从HTML模板传递的顺序,将要过滤的列表作为第一个参数发送,然后发送minValue,maxValue。过滤后,您可以返回一个新列表。
app.filter('filterPrice', function() {
return function(phoneList, maxValue, minValue) {
// You can refine this logic
if(!maxValue && !minValue)
return phoneList;
var filtered = [];
filtered = phoneList.filter(function(obj){
if(maxValue && !minValue){
return obj.price <= maxValue;
} else if(!maxValue && minValue){
return obj.price >= minValue;
}
return (obj.price >= minValue && obj.price <= maxValue )
})
return filtered;
};
});
答案 1 :(得分:0)
使用此格式应用过滤器:
app.filter('myFilter', function() {
return function(input, optional1, optional2) {
var output;
// Do filter work here
return output;
}
});