当使用ui-router改变状态时,我们可以使用一个控制器用于两种状态

时间:2016-07-28 20:54:21

标签: angularjs angular-ui-router

我正在尝试使用angular ui-router在路由之间切换。我有两个视图使用完全相同的功能。我的视图2使用了我的视图中几乎90%的功能,消除了一些HTML代码。在这种情况下,我可以为这样的两个状态使用相同的控制器吗?

    // Routes
    .config(['$stateProvider', function ($stateProvider) {
        $stateProvider
        .state('moduleone', {
            url: '/moduleone',
            controller: 'moduleoneCtrl',
            templateUrl: path + 'views/one.html',
        })
        .state('module two',{
            url: '/moduletwo',
            controller: 'moduleoneCtrl',
            templateUrl: path + 'views/two.html',
        });
    }]);

1 个答案:

答案 0 :(得分:1)

相反,我会说创建一个单独的状态,将轻微调整显示模板。您可以将映射存储在某处以确定模板名称。

<强>码

private static class CountOddsFn extends DoFn<Integer, Void> {

  Aggregator<Integer, Integer> aggregator =
    createAggregator("odds", new SumIntegerFn());

  @Override
  public void processElement(ProcessContext c) throws Exception {
    if (c.element() % 2 == 1) {
      aggregator.addValue(1);
    }
  }
}