我正在尝试使用 angular-ui-router 插件为 angular 设置路由。在页面上发生任何其他事情之前(无论哪个路由),都需要加载用户的数据。然后根据用户的数据(id、用户名等),可以加载路由所需的其他数据组件。
这种情况有模式吗?我在想解决这个问题的一种方法是在每条路线上添加用户数据作为解析。然而,这不仅看起来非常多余和低效,而且也不起作用(见下面的代码)。
这是一个不起作用的代码示例,因为collectionlist
解析不等待userpanel
解析完成(我知道这是预期的行为):
.state('default', {
url: '/',
views: {
'userpanel' : {
templateUrl: 'js/partials/user_panel.html',
controller: 'userController',
resolve: {
user: function(UserResourceLoader) {
return UserResourceLoader();
}
}
},
'collectionlist' : {
templateUrl: 'js/partials/collection_list.html',
controller: 'collectionsController',
resolve: {
collectionsByUser: function(CollectionsByUserLoader, User) {
return CollectionsByUserLoader(User.data.id);
}
}
}
}
})
对此的任何建议都会非常有帮助。