2014-10-06 78 views
0

爲什麼我的模塊不適用於$ injector服務?控制檯正在爲我的baseHellogeoHello服務報告「未知提供商」。顯然我錯過了一些基本的東西,但是對於我的生活,我看不到它!不明白爲什麼我的Angular Dependencies不能解決?

http://plnkr.co/edit/3Y0WeIH1dCkWKMhRJKnM?p=preview

/**Modules, we flesh these out below**/ 
angular.module('demo.services',[]); 
angular.module('demo.directives',['demo.services']); 
angular.module('demo',['demo.services','demo.directives']); 

/**Application Module, Dependency on geoHello Service**/ 
angular.module('demo') 
.controller('myCtrl',['$scope', 'geoHello',function($scope,geoHello){ 
    $scope.test = geoHello.msg 
}]); 

/**Base Hello Service**/ 
angular.module("demo.services") 
.factory("baseHello",function(r){ 
    return{ 
    'msg': 'Hello from ...' 
    } 
}); 

/**Service With Dependency on baseHello**/ 
angular.module("demo.services") 
.factory("geoHello",['baseHello',function(baseHello){ 
    var msg = baseHello.msg.replace("...","world"); 
    return{ 
    'msg': msg 
    } 
}]); 

/**Directive With Dependency on geoHello**/ 
angular.module("demo.directives") 
.directive('ngDemo',['geoHello',function(geoHello){ 
    return{ 
    'template': geoHello.msg 
    } 
}]); 

angular.bootstrap(document,['demo']); 
+1

通常,當您使用非最小化版本的angularjs進行調試時,它會有所幫助。您可能會很快發現下面建議的對'r'的依賴關係。 – 2014-10-06 16:45:23

+0

回想起我的控制檯原來的錯誤表明了'r'的依賴關係,我的眼睛一直關注錯誤信息中指定鏈中的其他兩個依賴項。整個時間都在我面前! – mccainz 2014-10-06 16:54:04

回答

2

。在你的工廠定義baseHello

/**Base Hello Service**/ 
angular.module("demo.services") 
.factory("baseHello",function(r){ 
    return{ 
    'msg': 'Hello from ...' 
    } 
}); 
1

未解決的依賴性(R)我想你必須在你的代碼一個錯字。您有baseHello服務的依賴項,稱爲r,這是無法解決的。這不是必要的,因爲你似乎沒有使用它,所以如果你把它拿出來,那麼你的代碼將在你的Plunker中運行。

前:

angular.module("demo.services") 
.factory("baseHello",function(r){ 
    return{ 
    'msg': 'Hello from ...' 
    } 
}); 

後:

angular.module("demo.services") 
.factory("baseHello",function(){ 
    return{ 
    'msg': 'Hello from ...' 
    } 
}); 

的工作Plunker見here

相關問題