有没有办法搜索智能表中的嵌套元素?我使用REST Api中的数据提供表格,该数据由以下格式组成:
{
"id": 1,
"small_name": "Foo",
"large_name": "Bar Foo",
"variants": [{"value": "0"}, {"value": "1"}]
}
我想要实现的是通过value
内对象的variants
属性过滤数据的可能性。
答案 0 :(得分:1)
从Smart Table文档:
" stSetFilter替换搜索智能表时使用的过滤器。当stSearch的默认行为不符合您的要求时,例如在一个条目是另一个条目是另一个条目的子串的情况下,使用自定义过滤器来实现您的目标。" http://lorenzofox3.github.io/smart-table-website/
该网站还有一个例子。
答案 1 :(得分:0)
我会为我的问题发布解决方案,也许它可以帮助某人。
angular.module('YourModule').filter('CustomFilter', [
'$parse',
function ($parse) {
return function(items, filters) {
console.log(items, filters);
var itemsLeft = items.slice();
Object.keys(filters).forEach(function (model) {
var value = filters[model],
getter = $parse(model);
itemsLeft = itemsLeft.filter(function (item) {
if (model === 'value') {
var variants = item.variants.filter(function (variant) {
return getter(variant).match(value);
});
return variants.length;
} else {
return getter(item).match(value);
}
});
});
return itemsLeft;
}
}
])