我繼續發現偉大的ui路由器。我現在關注resolve()
的功能。我有一個基地$state
我從後端解析查詢()。控制器訪問ui路由器解析
$stateProvider
.state('baseApp', {
url: '/app',
abstract: false,
templateUrl: 'app/layout/baseApp.html',
authenticate: true,
resolve: {
// Access API Service
APIService: 'APIService',
// Operators
myObjects: function(APIService){
// APIService is a service exposing $resource
return APIService.myObjects.query().$promise;
}
}
})
.state('baseApp.state1', {
url: '/state1',
views: {
'workspace': {
templateUrl: 'app/state1.html',
controller: 'State1Ctrl',
controllerAs: 'state1'
}
},
authenticate: true
})
我試圖訪問myObjects
在我State1Ctrl
:
function State1Ctrl(myObjects) {
....
console.log(myObjects);
....
}
我希望看到myMobject列表打印在控制檯中。可悲的是,這裏是輸出:
undefined
看來我無法訪問我的控制器中的承諾。你知道爲什麼嗎?
這段代碼對我來說很合適。你能把這個最小的例子放在一個plunkr中嗎?附註:APIService:'APIService'是不必要的... –