“未知Provider"将自定义过滤器注入服务时
"Unknown Provider" when injecting custom filter into service
我试图用自定义过滤器过滤搜索应用程序的结果。现在,angular文档指出你应该避免定义有状态过滤器。我的解决方法是构建一个服务来处理过滤器输入和自定义过滤器,它将这些输入作为参数对象。
这个概念工作得很好,而我有一个实现,它只在服务中使用自定义过滤功能。现在我把它移到一个过滤器声明中,像这样:
referenceFilter.filter.js
(function () {
'use strict';
angular.module('searchApp.search')
.filter('referenceFilter', function () {
return function (references, filterModel) {
var filteredReferences = [];
/* filtering */
return filteredReferences;
}
});
})();
现在,当我试图将过滤器注入到我的服务中时,我得到了"未知提供者"-错误声明它无法为我的referenceFilter找到提供者。虽然我认为它的注入是正确的,并且是在服务之前定义的。
referenceFilter.service.js
(function () {
'use strict';
angular.module('searchApp.search')
.factory('referenceFilterService', ['referenceFilter', referenceFilterService]);
function referenceFilterService(referenceFilter) { // 'reference' | 'referenceFilter' doesnt make a difference
....
/* filter call */
function getFilteredReferences(references) {
return referenceFilter(references, filterModel);
}
....
}
})();
包含在index.html
<script src="search/search.module.js"></script>
<script src="search/filter/referenceFilter.filter.js"></script>
<script src="search/filter/referenceFilter.service.js"></script>
我做错了什么?
你不应该直接注入你的过滤器,而应该使用内置的$filter
服务:
angular.module('searchApp.search')
.factory('referenceFilterService', ['$filter', referenceFilterService]);
function referenceFilterService($filter) {
var referenceFilter = $filter('referenceFilter');
// etc.
相关文章:
- 如何在angular.js中动态应用自定义过滤器
- 自定义angularjs过滤器日期时间格式额外字符
- AngularJS自定义过滤器未触发点击事件
- AngularJS中货币过滤器的Javascript代码无法使用自定义符号
- Vue.js如何在定义API变量之前实现自定义过滤器
- 我们如何自定义内置的 Angular “货币”过滤器
- 用于分页的 AngularJS 自定义过滤器
- 为什么我的自定义过滤器会导致无限消化
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 指令中的 AngularJS 自定义过滤器以格式化值
- Angular自定义过滤器在处理某些匹配时注销,但会过滤掉所有结果
- Angular js自定义过滤器未定义
- AngularJS自定义过滤器调用了两次,并在第二次调用时删除输入数据
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- 自定义角度过滤器提供TypeError.不能调用undefined,但变量已定义并有效
- 创建自定义角度过滤器
- 自定义过滤器的问题,我缺少什么
- 如何在Angular 1.3.6上创建一个自定义过滤器来搜索嵌套数组
- json数组angularjs中的自定义过滤器
- 两个日期之间的自定义过滤器 AngularJS