Javascript 嵌套对象上的角度过滤器
我有一个JSON对象数组,正在通过搜索进行过滤。在搜索中,我将搜索上的Javascript 嵌套对象上的角度过滤器,javascript,angularjs,angular-filters,Javascript,Angularjs,Angular Filters,我有一个JSON对象数组,正在通过搜索进行过滤。在搜索中,我将搜索上的ng model设置为search.$,但它只搜索每个对象的顶部,但我需要搜索嵌套在对象内部的所有对象。在Angular中有没有一种简单的方法可以做到这一点?可以使用自定义递归过滤函数(对于文档,请参见),以下示例对此进行了说明: 角度模块('deepFilterTestApp',[]) .filter('deepFilter',函数($filter){ 返回函数(文本){ 返回函数(值){ var searchTerm=文
ng model
设置为search.$
,但它只搜索每个对象的顶部,但我需要搜索嵌套在对象内部的所有对象。在Angular中有没有一种简单的方法可以做到这一点?可以使用自定义递归过滤函数(对于文档,请参见),以下示例对此进行了说明:
角度模块('deepFilterTestApp',[])
.filter('deepFilter',函数($filter){
返回函数(文本){
返回函数(值){
var searchTerm=文本;
if(角度等高线(值)){
var=false;
角度。forEach(值,函数(v,k){
found=found | |$filter('deepFilter')(搜索词)(v);
});
发现退货;
}else if(角度isString(值)){
if(value.indexOf(searchTerm)!=-1){
返回true;
}否则{
返回false;
}
}
};
};
})
.controller('DeepFilterTestController',函数($scope){
$scope.myArray=[
{
物业1:{
deepProperty1:“Deepppp1!!”
},
物业2:{
deepProperty2:“Deeep2!!”
}
},
{
物业1:{
deepProperty1:“dooop1!!”
},
物业2:{
deepProperty2:{
更深层的属性1:“deeepest 2!!”
}
}
}
];
});代码>
“dooop”:{{myArray | filter:('dooop'| deepFilter)}
“deeep”:{myArray | filter:('deeep'| deepFilter)}
“deeeppp”:{{myArray | filter:('deeeppp'| deepFilter)}
“deeepest”:{{myArray | filter:('deeepest'| deepFilter)}
你能提供一些代码供我们分析吗?我在这里放了一个JSFIDLE:但是我在搜索时遇到了一个错误:未捕获错误:[$rootScope:infdig]10$digest()迭代。流产我已经用你的小提琴解决了这个问题。看看这里的工作副本:事实证明,Angular应该一直都能做到这一点。自从1.3.6版本以来,它一直没有工作,但预计将在1.3.8中再次运行,请参阅:请将此答案的示例视为演示如何使用自定义筛选器为Filter Filter创建筛选器函数的演示,谢谢分享!如何显示查询值的整个继承?假设我想搜索deeepest 2代码>并且它有子项deeepest 3代码>和deeepest 3代码>将有deeepest 4代码>,我也想看看这些?