2017-02-27 8 views
2

Ich versuche, einen dynamischen Winkelfilter auf die MD-Datentabelle anwenden, um die Daten auf dem Gitter zu durchsuchen. jedoch ist es hier nicht zu funktionieren scheinen, ist ein kleines exapmple von dem, was ich zu tun versuche:Angular Material Data Tabelle Suche Filter

<md-input-container> 
     <label> Search Table </label> 
     <input ng-model="filter.search"> 
    </md-input-container> 

    <tr md-row md-select="dessert" md-auto-select ng-repeat="dessert in desserts.data | filter: filter.search | orderBy: query.order | limitTo: query.limit : (query.page -1) * query.limit"> 
+0

Bitte fügen Sie den Controllercode hinzu. – nextt1

+0

Ich verwende diesen Code-Stift für die MD-Datentabelle: http://codepen.io/anon/pen/qbLaMb alles was ich hinzufügen ist ein Such-Eingabefeld, um einen Filter zu versuchen die Daten – Flash

+0

http://codepen.io/next1/pen/OpyQXW es funktioniert – nextt1

Antwort

1

Wie Sie zeigte, bin ich das Hinzufügen von benutzerdefinierten Filter, die von Ihnen wie beschrieben tun.

Hier ist der benutzerdefinierte Filter.

$scope.filters = []; 
$scope.$watch('filter.search', function(newValue, oldValue) { 
if(newValue != undefined){ 
    $scope.filters = newValue.split(" "); 
} 
}) 

$scope.searachData = {}; 

$scope.customSearch = function(item) { 
$scope.searachData.status = true; 

angular.forEach($scope.filters, function(value1, key) { 
    $scope.searachData.tempStatus = false; 
    angular.forEach(item, function(value2, key) { 
    var dataType = typeof(value2); 

    if(dataType == "string" && (!value2.includes('object'))){ 
     if(value2.toLowerCase().includes(value1)){ 
     $scope.searachData.tempStatus = true; 
     } 
    }else if(dataType == "object"){ 
     var num = value2.value.toString(); 
     if(num.includes(value1)){ 
     $scope.searachData.tempStatus = true; 
     } 
    } 
    }); 
      $scope.searachData.status = $scope.searachData.status & $scope.searachData.tempStatus; 
}); 

return $scope.searachData.status; 
}; 

Hier ist die Arbeit Example.

+0

Danke! Ich werde versuchen, diesem Beispiel zu folgen – Flash

+0

Es funktioniert gut, wenn meine Daten hart codiert sind. aber wenn ich es von einem Dienst bekomme, scheint es eine Menge Konsolenfehler zu verursachen. aber ich versuche es jetzt zu debuggen – Flash

+0

Aufgrund Ihrer Objektstruktur können Sie einige Fehler erhalten. Bitte geben Sie Ihre Objektstruktur an und ich werde notwendige Änderungen vornehmen. – nextt1