Я очень новичок в angular
и, я не уверен, как управлять поведением моих фильтров.Несколько дополнительных фильтров в угловом
В приложении у меня есть два разных элемента управления drop down, которые фильтруют результаты моего набора данных и заполняют таблицу. Однако, несмотря на то, что эти фильтры работают, результаты зависят от обоих элементов управления, и если оба они не используются, возвращается пустой набор. Итак, мой вопрос: как я могу использовать эти фильтры по желанию? Таким образом, приложение возвращает каждый результат, когда фильтры не используются или возвращают отфильтрованные результаты одним из элементов управления или обоих?
Спасибо
Вот код:
AngularJS
Фильтры для каждого элемента управления. Они очень похожи:
.filter('byField', function() {
return function (results, options) {
var items = { options: options, out: [] };
angular.forEach(results, function (value, key) {
for (var i in this.options) {
if ((options[i].value === value.fieldId &&
options[i].name === "Field" &&
options[i].ticked === true)) {
this.out.push(value);
}
}
}, items);
return items.out;
};
})
.filter('byClass', function() {
return function (results, options) {
var items = { options: options, out: [] };
angular.forEach(results, function (value, key) {
for (var i in this.options) {
if ((options[i].value === value.documentClass &&
options[i].name === "Class" &&
options[i].ticked === true)) {
this.out.push(value);
}
}
}, items);
return items.out;
};
})
HTML
Это то, что я делаю, чтобы заполнить rows
таблицы:
<tr ng-repeat="result in results | byField:outputFields | byClass:outputClasses">
<td>{{result.documentId}}</td>
...
</tr>