在角度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 -->
答
您需要定义一个过滤器的功能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;
}
}
});
请注资$过滤器,控制器,然后尝试 – Jenny
没有运气,得到同样的错误 – rjD
或者我已经看到了'.filter()函数在一些网站上使用..我可以使用...在这种情况下 – rjD