2017-01-11 2 views
0

У меня есть следующий код:Угловые фильтры

<select name="condition" 
    ng-options="operation.id as operation.description for operation in Operators | myfilter:criterion_id" > 
</select> 

и

module.filter('myfilter', function() { 
    return function (x) { 
    return ????? 
    }; 
}); 

Я хочу, чтобы заполнить свой список выбора с этими опциями, чьи operation.idравнаcriterion_id. Как я могу это достичь?

ответ

1

Вы должны фильтровать свой массив на основе условия и возвращать фильтрованный массив.

module.filter('myfilter', function() { 
    return function (arrayOptions, criterion_id) { 
    var result = []; 
    result = arrayOptions.filter(function(operation){ 
     return (operation.id == criterion_id); 
    }) 
    return result; 
    }; 
}); 

Но вы должны сделать это в случае сложного процесса фильтрации с манипулированием данных, в противном случае вы должны использовать фильтр filter от Углового.

Operators | filter: {id: criterion_id} 
2

Вам не нужно, чтобы сделать свой собственный фильтр, по умолчанию ANGULAR в filter будет работать:

<select name="condition" 
    ng-options="operation.id as operation.description for operation in Operators | filter:{id:criterion_id}" > 
</select> 
0

Я только что написал код здесь .. пожалуйста, проверьте: http://jsfiddle.net/k86sy0ku/1/

<select 
     ng-options="p as p.first for p in people | filter:{id:FilterId}" 
     ng-model="selectedPerson"></select> 
Смежные вопросы