2016-03-28 32 views
0

有什么方法可以在智能表内嵌套元素搜索?我喂的数据表从由以下形式的REST API:智能表st-search嵌套对象内

{ 
    "id": 1, 
    "small_name": "Foo", 
    "large_name": "Bar Foo", 
    "variants": [{"value": "0"}, {"value": "1"}] 
} 

我想要实现的是通过variants内的对象的value属性来过滤数据的可能性。

回答

0

从智能表文档:

“的stSetFilter取代通过智能表搜索时,当stSearch默认的行为不符合你的要求,比如在选择使用的过滤器,其中一个条目的子字符串。另一个,使用自定义过滤器来实现你的目标。“ http://lorenzofox3.github.io/smart-table-website/

该网站还有一个示例可用。

+0

谢谢。我应该更多地关注'smart-table'网站,这要归功于我能够做到这一点。 –

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; 
     } 
    } 
])