作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这就是我要实现的目标:当用户输入的 URL 与 $stateProvider
中配置的状态的任何 URL 模式都不匹配时,应该设置状态到默认状态,例如 'notFound'
。进入此状态必须保持 URL 不变,以便用户有机会更正它。这就是我不使用 $urlRouterProvider.otherwise()
的原因。
目前我正在使用以下解决方法:在我的主 Controller 中我检查是否
$state.current.name == ''
如果是这种情况,我将设置 'notFound'
状态。
$state.go('notFound', {}, { location: false });
但是,这似乎有点像 hack,因为我假设有一种方法可以在 module.config() 中配置所有这些,但我不知道如何配置。对此有什么想法吗?
最佳答案
我自己找到了解决办法:URL中的参数可以使用正则表达式。因此,您可以将“包罗万象”状态定义为在 $stateProvider
中注册的最后一个状态,如下所示:
$stateProvider.state('notFound', {
url: '{path:.*}',
templateUrl: '/notFound.html'
});
如果没有其他 URL 模式匹配,将选择此状态并且可以通过 $stateParams.path
访问完整路径。
关于angularjs - 如何在 AngularJS ui-router 模块中指定默认状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21826461/
我是一名优秀的程序员,十分优秀!