对于我在AngularJS中工作的应用程序,我遇到以下问题:
国家定义:
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/app/start');
$stateProvider
// load dependencies on state
.state('app', {
url: "/app",
abstract: true,
template: "<div class='page' ui-view></div>",
resolve: {
// load properties
loadProperties: function(properties){
alert('load properties');
return properties.initProperties();
},
// load labels
loadLocalization: function(localize, loadProperties){
alert('load localization');
return localize.initLocalizedResources();
}
}
})
// dashboard : general index
.state('app.dashboard', {
url: "/dashboard",
templateUrl: "partials/dashboard/dashboard.html",
controller: "dashboardController",
resolve:{
// load workorders
loadData: function(wkorderService){
alert('load work orders service data');
return wkorderService.getData(null, null);
}
}
})
});
我已添加警报以检查序列,我注意到通过URL app.dashboard
访问/dashboard
状态警报的顺序:
按照解决的顺序 - 最后一个警报应该在根状态的解析中执行,而不是在解决子状态之前执行。
我错过了什么...... 提前感谢您查看此问题!
答案 0 :(得分:1)
基本上,更改&#39; app.dashboard&#39;陈述以下问题解决了我的问题:
// dashboard : general index
.state('app.dashboard', {
url: "/dashboard",
templateUrl: "partials/dashboard/dashboard.html",
controller: "dashboardController",
resolve:{
// load workorders
loadData: function(wkorderService,loadLocalization){
alert('load work orders service data');
return wkorderService.getData(null, null);
}
}
})
我认为&root;&#39; root&#39;在解决子状态之前自动调用state。猜测它不是,因此在loadData方法构造函数中专门添加loadLocalization
resolve。