【发布时间】:2016-01-24 19:59:19
【问题描述】:
我正在使用 UI 路由器作为我的应用程序的路由器,并且我需要让一个资源的所有实例始终可用。 这些实例列在我的应用程序的侧边栏中。 我在我的 routes.js 文件中开始使用类似的内容:
.state('auth', {
url: '/',
abstract: true,
controller: RootCtrl,
template: '<div ui-view autoscroll="true"></div>',
resolve: {
campaigns: function(UserCampaignsCollection, activeUser) {
return (new UserCampaignsCollection).query({user_id: activeUser.id});
}
}
})
这意味着我必须创建单独的控制器,只是为了保留所有活动并在其他控制器之间共享这些活动,如下所示:
_app.controller('RootCtrl',
function($rootScope, campaigns) {
$rootScope.campaigns = campaigns;
});
这很好用,因为我只在一个地方解决它,然后我的所有其他状态都只是继承基本状态(如 auth.account、auth.inovice 等),但我想避免需要附加所有我在 rootScope 上的广告系列。
是否有其他方法可以将数据传递给其他控制器,而不涉及像这样创建虚拟控制器并将数据附加到 rootScope?
【问题讨论】:
标签: angularjs angular-ui-router