angularjs - 是否可以为同一个 View 使用两个 Controller ?最好用ui-router

标签 angularjs angularjs-scope angular-ui-router

我在 Ui 路由器中有多个嵌套 View 。我想知道他们是否有可能为某些相同的功能共享一个 Controller ,然后为其他功能拥有自己的 Controller 。我希望这个父 Controller 进行一些 api 调用,并存储一些范围变量,这样我就不必在每个 Controller 内单独进行这些调用。我知道我可以通过解决实现类似的目标,但是一个 View 可能有 2 个 Controller 吗?

这是我的代码示例

.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 上,我指定了一个名为 appController 的 Controller ,其中包含 ng-controller="appController as app",然后我可以在我的应用程序的任何 View 中将其引用为 app。

关于angularjs - 是否可以为同一个 View 使用两个 Controller ?最好用ui-router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194028/

相关文章:

javascript - 如何仅在使用 css 或(angular)javascript 的特定单词后将句子分成 2 行

javascript - 使用服务传递数据的 undefined variable

ruby-on-rails - Bootstrap UI Angular Accordion 和 Rails 模板必须有一个根元素

angularjs - 在 Controller 之间共享异步数据而不发出多个请求

javascript - Angular UI Router - 如何将解析数据从父状态传递到嵌套 View

javascript - 如何修复括号与点符号 Angularjs

AngularJS - 在 ng-repeat 中获取下一个兄弟作用域

javascript - 在没有服务的情况下从 ng-include 继承外部 Controller 的范围?

angularjs - 在不重新加载 Controller 的情况下从解析函数访问数据

javascript - 使用 Protractor 检查 Angular ui 路由状态