1
使用UI-Router,但我不確定是否重要。使用Angular工廠進行路由解析
我想要做的是將我當前的解析邏輯提取到工廠/服務中,以免污染我的$stateProvider
定義。這是一個簡單的例子:
這裏是我當前的配置:($kinvey
是返回一個承諾服務)
.state('home', {
url: '/',
views: {
'header': headerView,
'content': {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
},
'footer': footerView
},
resolve: {
user: ['$kinvey', function ($kinvey) {
return $kinvey.User.me();
}]
}
})
而且想什麼我它是:
resolve: {
'user': 'DataResolverService.userResolve'
}
DataResolverService
.factory('DataResolverService', function DataResolverService($kinvey) {
var userResolve = {
user: ['$kinvey', function ($kinvey) {
return $kinvey.User.me();
}]
};
// public API
return {
userResolve: userResolve
};
});
我似乎得到Unknown provider: DataResolverService.userResolveProvider <- DataResolverService.userResolve
。這是因爲config()
區塊內的工廠/服務不能像這樣運行嗎?
作爲一個「最佳實踐」的筆記,是否有更好的方法來做到這一點?看起來有點醜 - 但另一種情況更糟。 – dmackerman
剛剛添加了一個可以隱藏常量中的「醜陋」的替代方法 –