在玩弄Angular時,我試着更好地理解如何使用工廠,服務,常量,路由和其他核心概念。所以我創建了一個簡單的演示應用程序,包含節點,表達,翡翠和角度。Angular「Unkown Provider」 - 如何在routeProvider配置中使用工廠?
現在我想在routeProvider配置中使用一個值。我創建了一個常量,這工作正常。爲了使它在將來的使用中更加靈活,我建立了一個工廠,但是這個失敗與「未知的提供者」有關。這是一個在Angular中實例化序列的問題嗎?爲什麼我不能將工廠注入.config
部分?在我嘗試使用服務而不是工廠的同樣的錯誤之前。希望我沒有犯一個簡單的錯字或語法錯誤,到目前爲止我沒有找到任何。
angular
.module('main', [
'ngRoute'
])
.constant('cApp', {
'defaultPath': '/home'
})
.factory('svcState', function(){
var appState;
function getState(){
return appState;
}
function init() {
appState='/home';
}
init();
return{
getState: getState
};
})
.config(function($routeProvider, svcState, cApp){
$routeProvider
.when('/home', {
templateUrl: "partials/home"
})
.when('/info', {
templateUrl: "partials/info"
})
.otherwise({
//redirectTo: cApp.defaultPath // this works fine
redirectTo: svcState.getState // this fails with "Error: [$injector:unpr] Unknown provider: svcState"
})
})
;
快速回答..感謝了很多!我瞭解服務和工廠來源於提供者。但好的,它似乎必須是「真正的」供應商。 – Rainer
@Rainer是的,你需要改變你的服務實施提供商 –
工作正常,再次感謝! – Rainer