我将 Angular 与 UI-router 一起使用,我希望用户始终(或在大多数情况下,但为简洁起见,我们可以说“始终”)在第 1 步(即我的主页)上进入网络应用。
UI 路由器配置速记:
.config(function($stateProvider, $urlRouterProvider) {
// route to root if no valid route found
$urlRouterProvider.otherwise('/step1');
var step1 = {
name : 'step1',
url : '/step1',
templateUrl: 'partials/step1.html'
};
var step2 = {
name : 'step2',
url : '/step2',
templateUrl: 'partials/step2.html'
};
.
.
.
.
}
我可以做一个解析或指定一个 Controller 并简单地设置 $location.path('/step1'),但是有没有办法只设置一个入口点并让 step2/step3 url 只能在从第一步,没有重定向的成本?
提前致谢
最佳答案
要解决此问题,您还可以使用 $stateChangeStart 事件。
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
if (fromState.name === '' && toState.name !== 'state1'){
event.preventDefault();
$state.go('state1');
}
});
关于javascript - Angular UI-router 设置网站入口点。重定向到主页 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23497987/