Angularjs ui使用具有不同结算的相同控制器路由多个视图

时间:2017-11-23 17:53:31

标签: javascript angularjs angular-ui-router resolve

我目前正在开发一个应用程序,在某些时候我们有一个具有多个内部视图的状态,每个视图都有自己的控制器并解析。此视图上的某些控制器是相同的,但解析的值可能不同。为了说明并更清楚,这是一个示例配置:

$stateProvider.state('dashboard', {
  url: '/dashboard',
  views: {
    '@': {
      templateUrl: 'dashboard.html',
      controller: 'DashboardController'
    },
    'a@dashboard': {
      templateUrl: 'partial-a-dashboard.html',
      controller: 'InnerDashboardController',
      resolve: {
        dep: function() {
          return 1;
        }
      }
    },
    'b@dashboard': {
      templateUrl: 'partial-b-dashboard.html',
      controller: 'SomeOtherDashboardController'
    },
    'c@dashboard': {
      templateUrl: 'partial-c-dashboard.html',
      controller: 'InnerDashboardController',
      resolve: {
        dep: function() {
          return 2;
        }
      }
    }
  }
};

现在这适用于ui-router 0.X但是我正在尝试将其迁移到1.X并且我看到不再支持每个视图的解析,而是我应该将解析对象移动到状态本身..问题来自'InnerDashboardController'。如果你看到它在2个内部视图中使用,它需要一个名为'dep'的属性,但是每个视图都将它解析为不同(视图中的控制器实例将dep为1,而c将使其为2)

最好的方法是更新它以使其在新的ui路由器上运行?我是否需要重命名控制器并使用不同的解析属性?还有其他可用的解决方法吗?

0 个答案:

没有答案