两个相似/相关的问题:
1)在$stateChangeStart
事件中,是否可以允许更改网址,但是阻止实际的状态转换?
如果我使用event.preventDefault()
,则会阻止更新网址。
2)是否可以更改您已创建的州的网址?
我创建了一个没有网址的状态,我用它来显示未授权状态的不同模板(如果用户没有正确的授权,他们会被重定向到此状态州,但我希望URL反映他们试图访问原始网址。)
$stateProvider.state('unauthorized-role', {
data: {
targetState: null
},
views: {
'main-view': {
controller: 'UnauthorizedCtrl',
templateUrl: '/src/app/role-unauthorized.tpl.html'
}
}
});
当我重定向到此状态时(在$stateChangeStart
中),我会执行以下操作:
ev.preventDefault();
var unauthState = $state.get('unauthorized-role');
unauthState.url = toState.url;
unauthState.data.targetState = toState;
$state.go(unauthState);
但它并没有继承新的网址。是否有可能以某种方式改变它?
答案 0 :(得分:0)
$state.go(unauthState, { location: false });