角度材料数据表搜索过滤器

问题描述:

我想应用一个动态角度过滤器到md数据表来搜索网格上的数据。但它似乎没有在这里工作是什么,我试图完成一个小exapmple:角度材料数据表搜索过滤器

<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

请添加控制器代码。 – nextt1

+0

我正在使用此代码笔为md数据表:http://codepen.io/anon/pen/qbLaMb 我要添加的所有内容都是搜索输入字段以尝试过滤数据 – Flash

+0

http:///codepen.io/next1/pen/OpyQXW它正在工作 – nextt1

正如你表明,我加入了自定义过滤器如你所说,这将做。

这是自定义过滤器。

$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; 
}; 

这里是工作Example

+0

谢谢!我会试着按照这个例子 – Flash

+0

当我的数据被硬编码时它工作正常。但是当我从服务中获得它时,它似乎会抛出很多控制台错误。但我现在试图调试它 – Flash

+0

由于您的对象结构,您可能会遇到一些错误。请提供您的对象结构,我会做必要的更改。 – nextt1