Angularjs 未知提供程序:myFilterProvider<;-我的过滤器,
我正在学习angular并构建一个小应用程序。我使用的是angular 1.3.1。我编写了一个自定义过滤器,在阅读文档后,我认为我使用的语法是正确的。依赖性注射有点不对劲,尽管我不断得到一个“未知提供者”,但我无法再解释可能的错误。请告诉我为什么这不起作用,提前谢谢 这是我的过滤功能:Angularjs 未知提供程序:myFilterProvider<;-我的过滤器,,angularjs,dependency-injection,angularjs-filter,Angularjs,Dependency Injection,Angularjs Filter,我正在学习angular并构建一个小应用程序。我使用的是angular 1.3.1。我编写了一个自定义过滤器,在阅读文档后,我认为我使用的语法是正确的。依赖性注射有点不对劲,尽管我不断得到一个“未知提供者”,但我无法再解释可能的错误。请告诉我为什么这不起作用,提前谢谢 这是我的过滤功能: angular.module('trimWords', []) .filter('trimWords', function(){ return function(input, words){
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;
}])
})();
在“网络”选项卡中,我可以看到文件正在正确加载。我能做些什么来解决这个问题呢?trimWords是一个过滤器,而不是一个服务。如果要将其注入控制器,请执行以下操作之一:
.controller('mainController', function(..., trimWordsFilter, ...) {
(注意过滤器
后缀),或
也就是说,在发布的代码中,控制器不使用过滤器,因此没有理由将其注入。为什么将控制器作为依赖项注入?是的,您创建的模块太多,这可能不是必需的。不管怎样,你能把你在控制台上得到的准确错误写出来吗?我在哪里做?这与过滤器功能有关吗?只有当我尝试添加过滤器“trimWords”时,我才得到错误。感谢you@Kulbushan谢谢这里是控制台的错误:错误:[$injector:unpr]错误(本机)在谢谢Vinett和Kulbhushan,我现在已经重构了。。。感谢您对我的代码发表评论非常感谢,这解决了提供程序错误。我的意图是在主控制器中使用过滤器。现在,当我尝试在html中使用过滤器时,我遇到了一个语法错误。我使用这个表达式:
。很抱歉,我以为一旦你将过滤器连接到模块,你就可以在表达式中使用它。。。对不起。。。我还需要做什么才能使用它吗?非常感谢。要使用过滤器,请使用单个垂直条:todo.text | trimWords:10
谢谢。。。那奏效了。。对不起,我自己错过了。再次感谢。。我可能需要更多的睡眠:/
.controller('mainController', function(..., $filter, ...) {
var trimWordsFilter = $filter('trimWords');