7

在我的 Angular JS 应用程序中,我有 2 个视图 - v1 和 v2 和 1 个控制器 - appCtrl。

我已经如下配置了 UI 路由器

          .state('profile.v1', {
            url: '/v1',
            templateUrl: 'v1.html',
            controller: 'appCtrl'
        })
          .state('profile.v2', {
            url: '/v2',
            templateUrl: 'v2.html',
            controller: 'appCtrl'
        })

我在 appCtrl 中有 2 个函数 - fv1 和 fv2。

我想在调用路由'/v1'时执行fv1,在调用路由'/v2'时执行fv2。

有人可以建议吗?

4

2 回答 2

5

注入$state控制器,然后检查$state.current.name- 它应该是profile.v1profile.v2,具体取决于您当前所处的状态

于 2016-07-16T18:18:27.773 回答
4

您可以使用一个状态声明执行此操作的另一种方法是:

.state('profile.detail', {
      url: '/:version',
      templateUrl: function($stateParams){             
         return $stateParams.version +'.html';
     },
      controller: 'appCtrl'
})

然后在控制器中注入 $stateParams 并检查$stateParams.version

于 2016-07-16T18:28:04.713 回答