Javascript 角度服务注入不一致

Javascript 角度服务注入不一致,javascript,angularjs,angular-services,Javascript,Angularjs,Angular Services,我是AngularJS的初学者 我有一个角度服务如下 angular.module('TestModule', []).service('testservice', ['$timeout', testservice]); function testservice($timeout) { /* my function */ } 我正在我的主模块中注入此模块,如下所示,在app.js中 angular.module("MainModule", ['TestModule']); 并尝试在我

我是AngularJS的初学者

我有一个角度服务如下

angular.module('TestModule', []).service('testservice', ['$timeout', testservice]);
function testservice($timeout) {
    /* my function */
}
我正在我的主模块中注入此模块,如下所示,在app.js中

angular.module("MainModule", ['TestModule']);
并尝试在我的控制器中注入testservice,如下所示

(function () {
'use strict';
angular
.module('MainModule')
.controller('testController', ['$scope', '$state', 'testservice',  testController]); 
function testController($scope, $state, testservice ) {
/*I have my functions here */
}

})();
有时,它成功注入,有时抛出错误,如下所示

(function () {
'use strict';
angular
.module('MainModule')
.controller('testController', ['$scope', '$state', 'testservice',  testController]); 
function testController($scope, $state, testservice ) {
/*I have my functions here */
}

})();

未知提供程序:testserviceProvider上述代码不能导致此错误


未知提供者:testserviceProvider从您发布的代码中,我看不出这是怎么可能的。请提供一个可以复制此错误的plunk或fiddle。实际上,这个简单的东西正在按预期工作,但是如果我在一个大型应用程序中合并相同的东西,它不是始终如一的,它可能与$timeout的一些承诺有关,但没有得到正确处理。一把小提琴将非常有助于观察者了解您的问题。然后,一些事情就隐藏在幕后了。正如前面所说的,单靠上面的代码不能导致此错误。如果您意外地覆盖了一个模块,比如
angular.module('TestModule',[])
(没有
testservice
service`),就会发生这种情况。问题是我在新的js文件中创建服务,每次使用
angular.module('TestModule',[])覆盖以前的服务,并且只有最后一个服务在
TestModule