У меня есть фильтр, который ничего не возвращает, когда он запускается на массиве с фабрики. Но когда я копирую массив непосредственно в фильтр, он отлично работает. Должно быть простое решение, и это сводит меня с ума.Фильтры, не работающие с массивом из ресурса
Это работает:
$filter('filter')([
{"name":"firstItem","code":"one"},
{"name":"secondItem","code":"two"},
{"name":"thirdItem","code":"three"}
],"two",true);
Это не:
$filter('filter')($scope.items,"two",true);
Угловая образец:
angular.module('App', ['ngResource'])
.controller('Ctrl', function($scope, $filter, Items) {
$scope.items = Items.query();
var codeToFilter = "two";
$scope.badFilter = $filter('filter')($scope.items,codeToFilter,true);
$scope.goodFilter = $filter('filter')([
{"name":"firstItem","code":"one"},
{"name":"secondItem","code":"two"},
{"name":"thirdItem","code":"three"}
],"two",true);
})
.factory("Items", function ($resource) {
return $resource("item-list.asp");
});
И возвращаемый массив из пункта-list.asp:
[{"name":"firstItem","code":"one"},{"name":"secondItem","code":"two"},{"name":"thirdItem","code":"three"}]
Это то, что я вижу на странице:
Bad Filter: []
Good Filter: [{"name":"secondItem","code":"two"}]
Спасибо за ответ! Теперь я получаю 'TypeError: undefined не функция 'в строке' Items.query'. – psnoonan
Извините, попробуйте мой обновленный ответ – Tom
Он отлично работает. Благодаря! – psnoonan