2016-03-28 3 views
0

Gibt es eine Möglichkeit, in verschachtelten Elementen in Smart-Table zu suchen? Ich füttere die Tabelle mit Daten aus einem REST-API, die in der folgenden Form besteht:Smart Table St-Suche in verschachtelten Objekten

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

Was will ich die Möglichkeit erreichen, ist es, die Daten über die value Eigenschaft der Objekte innerhalb der variants zu filtern.

Antwort

0

aus der Smart Tabelle Dokumentation:

„Die stSetFilter ersetzt die verwendeten Filter, wenn sie durch Smart-Tabelle der Suche Wenn das Standardverhalten für stSearch nicht Ihre Anforderungen nicht erfüllt, wie in einem ausgewählten, wo ein Eintrag ein Teil von ist. Verwenden Sie einen anderen Filter, um Ihre Ziele zu erreichen. " http://lorenzofox3.github.io/smart-table-website/

Dort ist auch ein Beispiel verfügbar.

+0

Danke. Ich hätte der "Smart-Table" -Seite mehr Aufmerksamkeit widmen sollen, dank der ich diesen Filter machen konnte. –

0

Ich poste die Lösung für mein Problem, vielleicht kann es jemandem helfen.

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