Массив фильтров AngularJS в контроллере

0

Я хочу фильтровать массив в контроллере, но он ничего не возвращает.

Это мой контроллер:

.controller('cardsCtrl', function($scope, $sce, LearnCard, Category, $ionicModal, $stateParams, $filter) {

  console.log("stateParam: " + $stateParams.catId);

  // Get all LearnCards
  $scope.learnCardsAll = LearnCard.query();
  console.log("Before filtering");
  console.log($scope.learnCardsAll); // is populated

  $scope.learnCards = $filter('filter')($scope.learnCardsAll, { category: 1 });

learnCardsAll заполняется так, как должно.

Это структура элементов: Журнал консоли

Может, кто-то может мне помочь?

  • 0
    Вы пытались использовать метод Лодаша _.filter ?
  • 0
    Если вы видите, что $scope.learnCardsAll заполнен, то $scope.learnCards = _.filter($scope.learnCardsAll, {category: 1}); должно сработать;
Теги:

1 ответ

1
Лучший ответ

Метод .query является асинхронным и выполняет обратный вызов.

Попробуйте сделать свою фильтрацию внутри него.

LearnCard.query(function(cards) {
  $scope.learnCards = $filter('filter')(cards, { category: 1 });
});

https://docs.angularjs.org/api/ngResource/service/$resource

  • 0
    Спасибо! Это решает мою проблему ... как-то. Представление принимает отфильтрованный список. Есть так много нового, что нужно прочитать и ввести, поэтому я не думал об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню