对象数组上的Angulajs过滤器
我有这个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);
};
此填充不为我工作。你可以帮我。 问候
这不是一个有效的对象:{User.LastName : filterSearchLetter}
它实际上应该抛出一个异常,说什么像
Uncaught SyntaxError: Unexpected token .
你可能想尝试,而不是什么是:{"User": {"LastName" : filterSearchLetter} }
遍历数组的对象请参阅: 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>
见我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;
};
});
完美这是为我工作。非常感谢 – user3790694 2014-10-06 08:54:12
你怎么想获得“信” – sylwester 2014-10-02 14:33:34