在角度js中使用自定义过滤器1.6.2

在角度js中使用自定义过滤器1.6.2

问题描述:

下面的代码片段与角度1.4.2完美协作,但是在将角度js库升级到1.6.2之后。在角度js中使用自定义过滤器1.6.2

我搜索了迁移/升级文档..等等。没有找到解决方案。

HTML代码:我的定制表的

<input ng-model="query" type="text" name="js_filter" > 

部分,tbItems.rows将包含在一个阵列/对象格式

<tr ng-repeat-start="datarow in resultItems = (tbItems.rows | filter:magikFilterQuery) " > 

JavaScript代码段的一些数据:之后

myControllers.controller('myContrBasic', ['$scope', '$http', 
    function ($scope, $http) { 

    $scope.magikFilterQuery = function (item) { 
     var term; 
     var part; 
     if (angular.isUndefined($scope.query) === false) { 
      if ($scope.matchcase === true) { 
      term = item.data[3]; 
      part = $scope.query; 
      } 
      else { 
      term = angular.lowercase(item.data[3]); 
      part = angular.lowercase($scope.query); 
      } 
      if (term.indexOf(part) === -1) { 
      return false; 
      } 
      else { 
      return true; 
      } 
     } 
     else { 
      return true; 
     } 
     }; 

错误升级角度js:

angular.js:14362 Error: [$injector:unpr] http://errors.angularjs.org/1.6.2/$injector/unpr?p0=magikFilterQueryFilterProvider%20%3C-%20magikFilterQueryFilter 
    at http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:6:425 
    at http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:44:374 
    at Object.d [as get] (http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:42:92) 
    at http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:44:436 
    at Object.d [as get] (http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:42:92) 
    at http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:163:474 
    at U (http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:125:13) 
    at http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:123:123 
    at q (http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:7:351) 
    at U (http://localhost/site82/folder/js/angular162/angular.min.js?v=8.2.6:123:102) <!-- ngRepeat: datarow in (tbItems.rows | magikFilterQuery) as resultItems --> 
+0

请注资$过滤器,控制器,然后尝试 – Jenny

+0

没有运气,得到同样的错误 – rjD

+0

或者我已经看到了'.filter()函数在一些网站上使用..我可以使用...在这种情况下 – rjD

您需要定义一个过滤器的功能magikFilterQuery像

angular.module('myApp').filter('magikFilterQuery', function() { 
    return function(item) { 
    var term; 
    var part; 
    if (angular.isUndefined($scope.query) === false) { 
     if ($scope.matchcase === true) { 
     term = item.data[3]; 
     part = $scope.query; 
     } 
     else { 
     term = angular.lowercase(item.data[3]); 
     part = angular.lowercase($scope.query); 
     } 
     if (term.indexOf(part) === -1) { 
     return false; 
     } 
     else { 
     return true; 
     } 
    } 
    else { 
     return true; 
    } 
    } 
}); 
+0

using this am getting the entire object在'item'中,我将不得不重新遍历它 – rjD

+0

好吧,我想出了一个解决方案,我编辑了上面的代码片段。 – rjD