можно ли фильтровать $ scope.items, сравнивая их с массивом? И положил результат в $ scope.itemsfiltered? Следующий url объясняет все это (прокрутка вниз): http://angular-tips.com/blog/2014/08/tip-accessing-filtered-array-outside-ng-repeat/Фильтр AngularJs с массивом значений
Я пробовал функцию, которая сравнивала все элементы с некоторыми значениями массива и работает. Но результат появляется только тогда, когда я присваиваю результат $ scope.items, а не когда я назначаю его $ scope.itemsfiltered.
Итак А) что-то, как и выше (см код ниже)
или б) что-то более простое, регулярное выражение или что-то сравнить с ... поэтому модель «filtereditem» не надо, а просто сделать: $ scope.filterByRegexOrSomethingElse =/compare1 | compare2 /;
<div class="item" ng-repeat="item in (itemsfiltered = (items | filter:filterByArr))">
{{ title }}
</div>
$scope.filterByArray = function() {
var arr = ['foo', 'bar'];
// do some magic here
var filtered = [];
for (var i = 0; i < items.length; i++) {
// resetScope($scope);
if (_.contains(arr, items[i].categorie)) {
filtered.push(items[i]);
}
}
$scope.itemsfiltered = filtered;
};
Что ваш вопрос? Как фильтровать массив или почему '$ scope.itemsfiltered = filter;' не работает? – Surya
Сделайте свой выбор, независимо от того, что работает ... – poashoas
В вашем изменении кода: 'item in (itemsfiltered = (items | filter: filterByArr))' to 'item в itemsfiltered | фильтр: filterByArr' и попробуйте? – Surya