2014-10-02 149 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