Angular UI Router - 如何创建所需的参数

时间:2016-09-08 16:52:29

标签: angularjs angular-ui-router

$stateProvider.state('state1', {
    url:'/state1/:param1/and/{param2:.+}',
    templateUrl: 'state1.html',
    controller: 'State1Controller',
});

如上所示,我正在尝试使用正则表达式来param2。如果它为空,则应加载默认状态:

    $urlRouterProvider.otherwise("/");

    $stateProvider.state('otherwise',{
        url: '/',
        templateUrl:'default.html'
    });

现在结果:

state1/1/and/1转到state1。好。

state1/1/and转到otherwise。好。

但是,

state1/1/and/没有状态!两个国家都没有加载。它不会重定向回/。什么?!

如何正确制作参数?

1 个答案:

答案 0 :(得分:1)

Angular js ui-router url参数默认是可选的。对于上面的情况,我们可以使用 $ stateParams 来检查是否定义了所需的参数。请检查以下代码。

if ($stateParams.param2=== undefined) {
  // Navigate to home.
  $location.path('/');
}

希望这可以解决您的问题。感谢。