我试图通过使用搜索文本框过滤ng-repeat中的嵌套对象.
给出以下对象:
$scope.items = { "1": { name: "First Item", tag: "first" }, "2": { name: "Second Item", tag: "second" } };
我想做这样的事情:
Using both {{key}} and {{values.name}}
这确实不起作用.我尝试了很多东西,但是我无法正常工作.我不想改变我的对象.我经常搜索,但没有找到符合我需要的东西.
我终于得到了自己问题的答案.
我只需要创建自己的过滤器,并使用正则表达式检查对象内的属性是否具有所需的值:
app.filter('customSearchFilter', function() { return function(input, term) { var regex = new RegExp(term || '', 'i'); var obj = {}; angular.forEach(input, function(v, i){ if(regex.test(v.name + '')){ obj[i]=v; } }); return obj; }; });
并以这种方式将其应用于HTML:
我创建了这个Plunker来展示我的解决方案