UI 多个状态的路由器同一个控制器
UI router same controller for multiple states
在我的 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。
有人可以建议吗?
将$state
注入控制器,并检查$state.current.name
- 应该是profile.v1
或profile.v2
,这取决于你目前处于什么状态
您可以使用一个状态声明执行此操作的另一种方法是:
.state('profile.detail', {
url: '/:version',
templateUrl: function($stateParams){
return $stateParams.version +'.html';
},
controller: 'appCtrl'
})
然后在controller中注入$stateParams并检查$stateParams.version
在我的 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。
有人可以建议吗?
将$state
注入控制器,并检查$state.current.name
- 应该是profile.v1
或profile.v2
,这取决于你目前处于什么状态
您可以使用一个状态声明执行此操作的另一种方法是:
.state('profile.detail', {
url: '/:version',
templateUrl: function($stateParams){
return $stateParams.version +'.html';
},
controller: 'appCtrl'
})
然后在controller中注入$stateParams并检查$stateParams.version