javascript - Angular UI-router 设置网站入口点。重定向到主页 URL

标签 javascript angularjs angular-ui-router angular-services

我将 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');
  }
});

来源:https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-create-rules-to-prevent-access-to-a-state

关于javascript - Angular UI-router 设置网站入口点。重定向到主页 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23497987/

相关文章:

javascript - AngularJs ng-消息无法正常工作

javascript - Aurelia:访问自定义元素的自定义函数或自定义属性

angularjs - 使用 Azure Cloud 作为 AngularJS 应用程序的后端

AngularJS 表单验证 ngMessages 不适用于多步表单

javascript - Angular ui-router动态查询字符串定义

javascript - 如何使用 for 循环创建多个进度条?

javascript - 当我需要在元素之间动态添加标记时,如何解决 React JSX 的相邻组件包装器错误?

javascript - 嵌套指令的 Angular Isolate 范围

javascript - 如何在另一个 JavaScript 脚本中检索从 AngularJS 返回的数据

angularjs - $stateChangeSuccess 被击中两次