2015-12-30 63 views
0

我想在控制器中過濾數組,但它不返回任何內容。控制器中的AngularJS過濾器陣列

這是我的控制器:

.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填充,因爲它應該。

這是元素的結構: Console log

也許有人能幫助我嗎?

+0

您是否嘗試過使用[lodash的_.filter(https://lodash.com/docs#filter)方法? –

+0

如果你可以看到'$ scope.learnCardsAll'已經被填充,那麼'$ scope.learnCards = _.filter($ scope.learnCardsAll,{category:1});'應該工作; –

回答

1

.query方法是異步並採取回調。

嘗試在裏面做你的過濾。

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

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

+0

謝謝!不知何故,這解決了我的問題。該視圖採用過濾列表。有太多新東西需要閱讀和輸入,所以我沒有想到這一點。 –