Fre*_*k L 19 angularjs angular-ui-router
所以这似乎是一个常见的问题,但我没有找到任何明确的答案.基本上我有一个州:
.state('users', {
url: '/example/:id',
templateUrl: 'angular-views/example.html',
controller: 'ExampleCtrl'
})
Run Code Online (Sandbox Code Playgroud)
我希望id是可选的.
当然它匹配
example/
example/1234
Run Code Online (Sandbox Code Playgroud)
但是没有尾随斜线就不匹配.
example
Run Code Online (Sandbox Code Playgroud)
我试过$urlMatcherFactoryProvider.strictMode(false);,但这似乎不适用于这种情况.我可以使用example?param=1234,但我更喜欢清洁版.
我真的需要为此定义第二个状态吗?
Cas*_*sey 40
您可以通过在params对象中为它们提供默认值来定义可选的URL参数,如下所示. squash如果未定义参数,将隐藏链接中的参数.
.state('users', {
url: '/example/:id',
templateUrl: 'angular-views/example.html',
controller: 'ExampleCtrl',
params: {
id: {
value: null,
squash: true
}
}
});
Run Code Online (Sandbox Code Playgroud)
我在本地尝试了这个,无论尾随斜线,它似乎都能正常工作.
| 归档时间: |
|
| 查看次数: |
4941 次 |
| 最近记录: |