Angularjs 是否可以对同一视图使用两个控制器?最好与用户界面路由器

Angularjs 是否可以对同一视图使用两个控制器?最好与用户界面路由器,angularjs,angularjs-scope,angular-ui-router,Angularjs,Angularjs Scope,Angular Ui Router,我在Ui路由器中有多个嵌套视图。我想知道他们是否可以共享一个控制器来实现一些相同的功能,然后拥有自己的控制器来实现其他功能。我希望这个父控制器进行一些api调用,并存储一些范围变量,这样我就不必在每个控制器中单独进行这些调用。我知道我可以通过解析实现类似的功能,但是一个视图可以使用两个控制器吗 下面是我的代码示例,说明我的代码是什么样子的 .state('app.user', { url: '/user', resolve: { userData: ["UserService",

我在Ui路由器中有多个嵌套视图。我想知道他们是否可以共享一个控制器来实现一些相同的功能,然后拥有自己的控制器来实现其他功能。我希望这个父控制器进行一些api调用,并存储一些范围变量,这样我就不必在每个控制器中单独进行这些调用。我知道我可以通过解析实现类似的功能,但是一个视图可以使用两个控制器吗

下面是我的代码示例,说明我的代码是什么样子的

.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调用,现在我有了将在所有这些嵌套视图中用作范围变量的数据,如何从视图的专用控制器中访问该范围变量?是的。这里有一个很好的答案: