2017-05-18 54 views
1

我初学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 */ 
} 

})(); 

有时,它被成功注入和有时它抛出如下错误

未知提供商:testserviceProvider < - TestService的< - 的TestController

我无法猜测出了问题,我完全被卡住它。我做错了什么?

+0

我不明白你发布的代码有多可能。请提供可以复制此错误的plunk或小提琴。 – estus

+0

实际上,这个简单的事情是按预期工作的,但是如果我在大型应用程序中合并相同类型的事物,它并不一致 –

+0

它可能与$ timeout中的某些承诺没有正确处理有关。 – neptune

回答

1

上面的代码不能导致此错误

未知提供商:testserviceProvider < - TestService的< -

的TestController

如果TestModule包含testservice变得不慎与另一种定义重写发生这种情况TestModule

angular.module('TestModule', []); 

如果错误出现并随机消失,这意味着在某些情况下,在包含TestModule模块的文件中包含testservice的文件将在包含覆盖的TestModule的文件之前加载,并且在某些情况下不会。

+0

问题是我在新的js文件中创建服务,每次我使用'angular.module('TestModule',[]);' 它覆盖了以前的服务,并且只有最后一个服务在'TestModule'中可用 –