2015-06-16 4 views
0

Я пытаюсь создать фильтр для данных AngularJS. У меня есть 2 входа, minAgeInput и maxAgeInput.Фильтр по числовому диапазону, пользовательский фильтр - AngularJS

Я хотел бы вернуть все продукты/объекты (с ng-repeat), где minAge и maxAge продукта находятся в пределах границ, заданных входными значениями.

Моя функция фильтра выглядит следующим образом:
или ссылку на Plunker

$scope.ageRange = function (plane) { 
var minAgeProduct = parseFloat(product.minAge); 
var maxAgeProduct = parseFloat(product.maxAge); 
var minAgeInput = parseFloat($scope.minAge); 
var maxAgeInput = parseFloat($scope.maxAge); 

if(minAgeInput >= minAgeProduct) { 
    if(maxAgeInput <= maxAgeProduct) { 
     return true; 
    } else { 
     return false; 
    } 
    return true; 
} else { 
    return false; 
} 
}; 
+0

Кажется, что кто-то спросил о том же вопросе: http://stackoverflow.com/questions/30858071/advanced-filt er-array-angularjs :) – sirrocco

+0

@sirrocco, похоже, я ответил на тот же вопрос дважды. –

+0

Yeap ... может быть, это был конкурс в офисе - кто может задать вопрос быстрее :)) – sirrocco

ответ

0

Вот функциональное решение вопроса:

$scope.ageRange = function (plane) { 
    var minAgeProduct = parseFloat(plane.minAge); 
    var maxAgeProduct = parseFloat(plane.maxAge); 
    var minAgeInput = parseFloat($scope.minAge); 
    var maxAgeInput = parseFloat($scope.maxAge); 

    if (!isNaN(minAgeInput) && maxAgeProduct < minAgeInput) 
     return false; 

    if (!isNaN(maxAgeInput) && minAgeProduct > maxAgeInput) 
     return false; 

    return true; 
}; 

Рабочий раствор можно найти здесь Plunker