Angularjs 是否可以对同一视图使用两个控制器?最好与用户界面路由器
我在Ui路由器中有多个嵌套视图。我想知道他们是否可以共享一个控制器来实现一些相同的功能,然后拥有自己的控制器来实现其他功能。我希望这个父控制器进行一些api调用,并存储一些范围变量,这样我就不必在每个控制器中单独进行这些调用。我知道我可以通过解析实现类似的功能,但是一个视图可以使用两个控制器吗 下面是我的代码示例,说明我的代码是什么样子的Angularjs 是否可以对同一视图使用两个控制器?最好与用户界面路由器,angularjs,angularjs-scope,angular-ui-router,Angularjs,Angularjs Scope,Angular Ui Router,我在Ui路由器中有多个嵌套视图。我想知道他们是否可以共享一个控制器来实现一些相同的功能,然后拥有自己的控制器来实现其他功能。我希望这个父控制器进行一些api调用,并存储一些范围变量,这样我就不必在每个控制器中单独进行这些调用。我知道我可以通过解析实现类似的功能,但是一个视图可以使用两个控制器吗 下面是我的代码示例,说明我的代码是什么样子的 .state('app.user', { url: '/user', resolve: { userData: ["UserService",
.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'
}
}
})
是的,我在大多数应用程序中都这样做。在我的body div中,我使用ng controller=“appController as app”指定一个名为appController的控制器,然后我可以从我的应用程序中的任何视图中将其作为app引用 你可以这么做
<div ng-controller="parentController">
<div ng-view></div>
</div>
parentController
是用于相同功能的通用控制器,并且将为各个控制器更新ng视图 有可以与我们共享的代码吗?比如说,我以这种方式使用父控制器来执行api调用,现在我有了将在所有这些嵌套视图中用作范围变量的数据,如何从视图的专用控制器中访问该范围变量?是的。这里有一个很好的答案: