我正在学习角度并构建一个小应用程序。我正在使用角1.3.1。我写了一个自定义过滤器,在阅读文档后认为*我正在使用语法。虽然依赖注入有些问题,但我不断得到一个“未知的提供者”我无法再解释可能出现的问题了。请告诉我为什么这不起作用,提前谢谢!!
这是我的过滤功能:
angular.module('trimWords', [])
.filter('trimWords', function(){
return function(input, words){
if(isNaN(words)) return input;
if(input){
var inputWords = input.split(/\s+/);
if(inputWords.length > words){
input = inputWords.slice(0, words).join(' ') + '...';
}
}
return input;
};
});
以下是我在我的应用程序中声明它并将其作为依赖项注入:
(function(){
var myApp = angular.module('myApp',['ngStorage','ngAnimate','ngRoute',
'mainController', 'todoService','formController', 'trimWords']);
angular.module('mainController', [])
.controller('mainController',['$scope', '$localStorage', 'Todos','trimWords', function($scope, $localStorage, Todos, trimWords){
$scope.$storage = Todos.initStorage;
$scope.formData = {};
$scope.formData.text = ' ';
$scope.createToDo = Todos.createToDo
$scope.formData.text = ' ';
$scope.destroyTodo = Todos.destroyTodo;
}])
})();
在网络选项卡中,我可以看到文件正确加载。我可以尝试解决这个问题吗?
答案 0 :(得分:0)
trimWords是一个过滤器,而不是一个服务。如果您希望将其注入控制器,请执行以下操作之一:
.controller('mainController', function(..., trimWordsFilter, ...) {
(请注意Filter
后缀)或
.controller('mainController', function(..., $filter, ...) {
var trimWordsFilter = $filter('trimWords');
也就是说,在发布的代码中,控制器不使用过滤器,因此没有理由将其注入。