在我的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。
我想在调用route'/ v1'时执行fv1,在调用route'/ v2'时执行fv2。
有人可以建议吗?
答案 0 :(得分:4)
将$state
注入控制器,并检查$state.current.name
- 它应该是profile.v1
或profile.v2
,具体取决于您当前所处的状态
答案 1 :(得分:3)
使用一个州声明可以做到这一点的另一种方法是:
.state('profile.detail', {
url: '/:version',
templateUrl: function($stateParams){
return $stateParams.version +'.html';
},
controller: 'appCtrl'
})
然后在控制器中注入$ stateParams并检查$stateParams.version