2014-12-03 58 views
4

我试图在run函数中注入$ timeout,但是当我尝试调用它时,得到的结果是not a function。为什么?

var mainApp = angular.module('mainApp', ['ngRoute', 'ngAnimate', 'ui.bootstrap', ngCookies']); 

mainApp.run(['$rootScope', '$location', '$timeout' 
     function ($rootScope, $location, $route, authService, $timeout) { 
... 
}]); 
+1

这段代码有很多语法错误。纠正它,然后再试一次 – simon 2014-12-03 12:59:12

回答

14
mainApp.run(['$rootScope', '$location', '$timeout' 
     function ($rootScope, $location, $route, authService, $timeout) { 
... 
}]); 

应该是:

mainApp.run(['$rootScope', '$location', '$route', 'authService', '$timeout', 
     function ($rootScope, $location, $route, authService, $timeout) { 
... 
}]); 

看见 '排列注释' 部分在这里:

https://docs.angularjs.org/api/auto/service/$injector

2

当你注释功能具有依赖性的名称,顺序外观应该匹配。

... 
mainApp.run(['$rootScope', '$location', '$route', '$timeout', 'authService', 
     function ($rootScope, $location, $route, $timeout, authService) { 
... 
}]);