$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/
没有状态!两个国家都没有加载。它不会重定向回/
。什么?!
如何正确制作参数?
答案 0 :(得分:1)
Angular js ui-router url参数默认是可选的。对于上面的情况,我们可以使用 $ stateParams 来检查是否定义了所需的参数。请检查以下代码。
if ($stateParams.param2=== undefined) {
// Navigate to home.
$location.path('/');
}
希望这可以解决您的问题。感谢。