Javascript 如何使用AngularJs过滤JSON数据?
我有一个包含JSON对象的数组(_users)Javascript 如何使用AngularJs过滤JSON数据?,javascript,json,frameworks,angularjs,Javascript,Json,Frameworks,Angularjs,我有一个包含JSON对象的数组(_users) { "User": { "userid":"19571", "status":"7", "active":"1", "lastlogin":"1339759025307", "Stats": [ { "active":"1", "catid":"10918", "typeid":"71", "Credit
{
"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-如何仅筛选“活动”用户:“1”而不是“0”
我试过这样的方法:
<div ng-repeat="user in _users | filter:active | orderBy:user.userid">
{{user.userid}}
</div>
{{user.userid}
但对我来说不是很正常
谢谢大家! 由于对象模型有点复杂,我建议使用自定义过滤功能:
$scope.isActive = function(user) {
return user.User.Stats[0].active === "1";
};
然后在HTML中:
<div ng-repeat="user in _users | filter:isActive">
{{user.User.userid}}
</div>
{{user.user.userid}
以下是正在工作的JSFIDLE:
如果您需要更多信息,请务必查看angular关于过滤器的文档:进一步了解@pkozlowski.opensource并允许对项目/用户进行实时过滤:
上面的答案很完美,但仅供参考,如果您想在绑定到作用域之前过滤数组,还可以使用jQuery.grep()或下划线.js-jQuery.grep()-下划线.js中的_过滤器
<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>
$scope.isInteresting = function (user) {
if ($scope.zzzzz == undefined) {
return true;
}
return user.userid.indexOf($scope.zzzzz) !== -1;
};