2012-08-12 21 views
19

JSON nesnelerini içeren bir dizilim (_users) var. Ben sahip olan kullanıcıları filtre nasılAngularJs ile JSON-Data nasıl filtrelenir?

{ 
    "User": 
    { 
    "userid":"19571", 
    "status":"7", 
    "active":"1", 
    "lastlogin":"1339759025307", 
    "Stats": 
    [ 
     { 
     "active":"1", 
     "catid":"10918", 
     "typeid":"71", 
     "Credits": 
     [ 
      { 
      "content":"917,65", 
      "active":"1", 
      "type":"C7" 
      },    
      { 
      "content":"125,65", 
      "active":"1", 
      "type":"B2" 
      } 
     ] 
     } 
    ] 
    } 
} 

1- "aktif": Böyle bir şey denedim

"1" değil "0":

<div ng-repeat="user in _users | filter:active | orderBy:user.userid"> 
    {{user.userid}} 
</div> 

ama için düzgün çalışmıyor ben mi.

Teşekkür ederiz!

İşte
<div ng-repeat="user in _users | filter:isActive"> 
    {{user.User.userid}} 
</div> 

çalışma jsFiddle geçerli:: HTML'nize sonra

$scope.isActive = function(user) { 
    return user.User.Stats[0].active === "1"; 
}; 

ve: senin nesne modeli yana

cevap

38

Ben özel filtreleme işlevini kullanarak öneriyoruz karmaşık türüdür http://jsfiddle.net/pkozlowski_opensource/4kzzy/3/

Daha fazla bilgiye ihtiyacınız varsa, açısal dokümanların filtrelerini kontrol ettiğinizden emin olun: http://docs.angularjs.org/api/ng.filter:filter

+1

Bu mükemmel çalışır. Teşekkür ederim! –

+2

Yukarıdaki yanıt mükemmel ancak FYI, dizininizi kapsam içine bağlamadan önce filtrelemek isterseniz, jQuery.grep() veya _filter öğesini underscore.js adresinden de kullanabilirsiniz. http://jsfiddle.net/NRuM7/1/ - jQuery.Grep() http://documentcloud.github.com/underscore/#filter - underscore.js – GFoley83

3

alınması @ biraz daha ileri pkozlowski.opensource ve ürün/kullanıcıların canlı filtreleme sağlayan:

http://jsfiddle.net/hbyNN/

<div ng-controller="MyCtrl"> 
    <label>userid substring filter:</label> 
    <input ng-model="zzzzz"> 

    <div ng-repeat="user in _users | filter:isInteresting"> 
     <pre>{{user | json}}</pre> 
    </div> 
</div> 

Ve:

$scope.isInteresting = function (user) { 
    if ($scope.zzzzz == undefined) { 
     return true; 
    } 

    return user.userid.indexOf($scope.zzzzz) !== -1; 
}; 
İlgili konular