如何在AngularJS ui-router模块中指定默认状态

这是我试图实现的:当用户输入的URL与$stateProvider中配置的状态的任何URL模式都不匹配时,状态应设置为默认状态,例如'notFound'。进入这个状态必须保持URL不变,所以用户有机会纠正它。这就是为什么我不使用$urlRouterProvider.otherwise()。如何在AngularJS ui-router模块中指定默认状态

目前,我用以下解决方法工作:在我的主控制器我是否

$state.current.name == '' 

如果是这样的话,我设置'notFound'状态。

$state.go('notFound', {}, { location: false }); 

然而,这似乎有点像一个黑客,因为我认为有是配置module.config()所有这一切的方式,但我不知道怎么办。对此有何想法?

回答:

我自己找到了解决方案:可以在URL中使用正则表达式参数。所以,你可以定义一个“包罗万象”的状态作为$stateProvider注册这样的一个状态:

$stateProvider.state('notFound', { 

url: '{path:.*}',

templateUrl: '/notFound.html'

});

如果没有其他网址格式匹配,这种状态将被选中,完整的路径可以通过$stateParams.path访问。

以上是 如何在AngularJS ui-router模块中指定默认状态 的全部内容, 来源链接: utcz.com/qa/260737.html

回到顶部