2014-10-02 106 views
0

我有這個json對象。對象數組上的Angulajs過濾器

var UsersList=[ 
    { 
     "User" : { 

      "IdUser" : "admin", 
      "FirstName" : "mirco", 
      "LastName" : "sabatino" 

     } 
    }, { 
     "User" : { 

      "IdUser" : "coordinator", 
      "FirstName" : "coordinator", 
      "LastName" : "" 

     } 
    }, { 
     "User" : { 

      "IdUser" : "test", 
      "FirstName" : "publisher", 
      "LastName" : "Diaz" 

     } 
    }, { 
     "User" : { 

      "IdUser" : "work", 
      "FirstName" : "ingester", 
      "LastName" : "Brown" 

     } 
    } 
    ] ; 

我想過濾ng-repeat中的LastName值。在我CONTROLER

<div class="col-md-6" ng-repeat="users in UsersList | filter: {User.LastName : filterSearchLetter}"> 

filterSearchLetter值由

$scope.filterLetterUser=function(letter){ 
     $scope.filterSearchLetter=letter; 
     console.log($scope.filterSearchLetter); 
    }; 

此填充不爲我工作。你可以幫我。 問候

+0

你怎麼想獲得「信」 – sylwester 2014-10-02 14:33:34

回答

0

這不是一個有效的對象:{User.LastName : filterSearchLetter}它實際上應該拋出一個異常,說什麼像

Uncaught SyntaxError: Unexpected token . 

你可能想嘗試,而不是什麼是:{"User": {"LastName" : filterSearchLetter} }

0

遍歷數組的對象請參閱: angularjs - ng-repeat: access key and value from JSON array object

您可能必須使用JS_Obj = JSON.parse(JSON_Obj)將其轉換爲有效的JS對象;

也許是這樣的:

//iterate through array 
<ul ng-repeat="users in UsersList"> 
    //iterate through Object 
    <li ng-repeat=(key, value) in users | filter: {User.LastName : filterSearchLetter}> 
    {{key}} : {{value}} 
    </li> 
</ul> 
1

見我plnkr爲解決http://plnkr.co/edit/l27xUQ?p=preview。我也使用ng-change實現了您所需的UI行爲。希望能幫助到你。

有關詳細解釋,我爲您提供託德座右銘的博客 - http://toddmotto.com/everything-about-custom-filters-in-angular-js/

要調用一個過濾器,語法是過濾函數名稱後面的參數。

要定義你需要做一個過濾器(這是修改您的數據託德座右銘代碼複印件)

todos.filter('startsWithLetter', function() { 
    return function (items, letter) { 
     var filtered = []; 
     var letterMatch = new RegExp(letter, 'i'); 
     for (var i = 0; i < items.length; i++) { 
      var item = items[i]; 
      if (letterMatch.test(item.User.LastName.substring(0, 1))) { 
       filtered.push(item); 
      } 
     } 
     return filtered; 
    }; 
}); 
+0

完美這是爲我工作。非常感謝 – user3790694 2014-10-06 08:54:12