我在Ui路由器中有多个嵌套视图。我想知道他们是否有可能共享一个控制器以获得相同的功能,然后拥有自己的控制器用于其他功能。我希望这个父控制器进行一些api调用,并存储一些范围变量,这样我就不必在每个控制器内单独进行这些调用。我知道我可以通过决心实现类似的功能,但是对于一种视图可以使用2个控制器吗?
以下是我的代码看起来像
的代码示例.state('app.user', {
url: '/user',
resolve: {
userData: ["UserService", function(UserService) {
return UserService.getuser().then(function(profile) {
UserService.profile = profile.data;
UserService.currentId = profile.data.user.id;
return profile.data;
});
}]
},
views: {
'content@': {
templateUrl: ENVApp + '/views/user/profile.html?',
controller: 'UserController'
},
'addresses@app.user': {
templateUrl: ENVApp + '/views/partials/addresses?',
controller: 'UserAddressController'
}
}
})
答案 0 :(得分:3)
是的,我在大多数应用中执行此操作。在我的身体div上,我指定了一个名为appController的控制器,其中ng-controller =" appController为app"然后我可以在我的应用程序的任何视图中作为应用程序引用它。
答案 1 :(得分:0)
你可以做到
<div ng-controller="parentController">
<div ng-view></div>
</div>
parentController
是相同功能的通用控制器,将为各个控制器更新ng-view
。