无法加载自定义过滤器,未知提供程序错误

时间:2015-08-18 20:50:45

标签: javascript angularjs dependency-injection angularjs-filter

我研究了“Angular JS by example”一书(第79-84页),在第二章中我创建了一个定制的过滤器。

这是包含所有模块声明的js文件(appModule.js

//root module
angular.module('app', ['ngRoute','7minWorkout']).
config(function ($routeProvider, $locationProvider, $sceDelegateProvider){
//...

//seven min workout app module
angular.module('7minWorkout', []);

此文件包含自定义过滤器(filters.js

angular.module('7minWorkout').filter('secondsToTime', function () {
//...

7minWorkout模块的唯一控制器位于workout.js

angular.module('7minWorkout').controller('WorkoutController',['$scope', '$interval','$location',function($scope, $interval,$location){
//...

并且我没有在该文件中使用任何过滤器

最后这是视图

<h4>Workout Remaining - {{workoutTimeRemaining | secondsToTime}}</h4>

我得到了

Error: [$injector:unpr] Unknown provider: secondsToTimeFilterProvider <- secondsToTimeFilter

我红色this页面,但我不知道如何解决这个问题。在创建自定义过滤器之前,我的应用程序没有任何问题。有什么帮助吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

您的代码对我来说很合适。

当您将每个文件中的各个组件分开时,您需要在index.html上引用这些文件

您一定错过了在index.html中引用filter.js

答案 1 :(得分:1)

我的猜测是你缺少对主html文件中文件的引用。

您是否添加了对添加的所有新javascript文件的引用?