如何在angularJS中为对象数组使用过滤器?
How can I use filter for array of object in angularJS?
我得到一个json数组,如:
{"1":{"postid":1,"name":"akash","date":"28 Jul 2014"}
,"2":{"postid":2,"name":"rajat","date":"28 Jul 2014"}
,"3":{"postid":3,"name":"rahul","date":"28 Jul 2014"}}
我正在尝试使用下面的代码来过滤这个数组:-
<input type="text" ng-model="queryfield" />
<div class="privacy_wrp data"
ng-repeat="res in faqallhtml | filter:queryfield"
id="{{res.postid}}">
<h4> {{res.name}}</h4>
<span class="date">{{res.date}}</span> </p>
但是我无法过滤结果。当我试图通过此代码进行过滤时,没有发生任何事情。
使用underscore.js中的_.values()函数使其工作
http://jsfiddle.net/8MVLJ/981/控制器:
$scope.faqallhtml = {
"1":{"postid":1,"name":"akash","date":"28 Jul 2014"},
"2":{"postid":2,"name":"rajat","date":"28 Jul 2014"},
"3":{"postid":3,"name":"rahul","date":"28 Jul 2014"}
};
$scope.faqallhtmlValues = _.values($scope.faqallhtml);
HTML: ng-repeat="res in faqallhtmlValues | filter:queryfield"
try this
<div class="privacy_wrp data" ng-repeat="res in faqallhtml | filter:{'property':queryfield}" id="{{res.postid}}">
它为我工作时,使用数组的对象
正如答案中所述,您需要获取这些值,在这种情况下无需加载额外的库。您可以简单地手动执行
<div class="privacy_wrp data" ng-repeat="res in searchFilter(faqallhtml)|filter:queryfield" id="{{res.postid}}">
其中searchFilter将其转换为数组:
$scope.searchFilter = function(items) {
var data = [];
angular.forEach(items, function(value, key) {
data.push(value)
})
return data;
};
工作代码相关文章:
- angularjs ng基于点击时的数组值重复过滤器
- javascript和具有唯一密钥的es6过滤器数组
- 数组过滤器导致无限$digest循环
- (角度.js)如何通过过滤器计算数组中有多少项目
- AngularJS过滤器不适用于我的数据:关联数组
- 键上的javascript数组对象过滤器
- 如何遍历对象数组并将值放入过滤器中
- 如何使用angular js过滤器格式化数组中的值
- Javascript数组过滤器:获取正确的上下文
- 如何在angularjs中对指令内部的JSON数组使用过滤器
- 对象中的角度过滤器空数组
- JavaScript's数组过滤器函数在没有分配函数的情况下使用-这里发生了什么
- Knockout.js 数组过滤器语法
- javascript在数组过滤器中嵌套for循环
- AngularJS数组过滤器不起作用
- 为什么我的数组过滤器返回'undefined不是一个函数'
- AngularJS -自定义多维数组过滤器
- IE8数组过滤器()不起作用
- 数组过滤器更改主数组
- 数组过滤器返回字符串