0
<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. Я получаю изменение значений, но как обновить их в списке?Как вызвать собственный фильтр вручную?

ответ

1

Вы можете использовать filter для этого прохождения введенного пользователя minValue и maxValue процедить.

<li ng-repeat="phone in phoneList | filterPrice:maxValue:minValue"> 
    {{ phone }} 
</li> 

Отправить список вы хотите отфильтровать, как 1-й пар, затем MinValue, MaxValue на основании приказа вы прошли затем из шаблона HTML. После фильтрации вы можете вернуть новый список.

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; 
    }; 
}); 

Plunker

0

Используйте этот формат для применения фильтра:

app.filter('myFilter', function() { 
    return function(input, optional1, optional2) { 
    var output; 
    // Do filter work here 
    return output; 
    } 
}); 
+0

Еще не вызывая функцию Filer. – jain