2 回答
TA贡献1874条经验 获得超12个赞
有针对这种情况的解决方案。我们将使用1)一种ui-router本机功能和2)一种配置设置。这里可以看到一个有效的例子。
1)ui路由器状态定义的本机功能是:
该url是没有必要的。可以定义状态而无需在位置上表示。
2)配置设置为:
otherwise()对于无效的路由,该参数不必是具有默认url的字符串,但也可以是一个函数(引用):
路径字符串| 函数要重定向到的URL路径或返回URL路径的函数规则。函数版本传递两个参数:$ injector和$ location
解决方案:两者结合。我们将state 没有 url and custom otherwise:
$stateProvider
.state('404', {
// no url defined
template: '<div>error</div>',
})
$urlRouterProvider.otherwise(function($injector, $location){
var state = $injector.get('$state');
state.go('404');
return $location.path();
});
TA贡献1806条经验 获得超8个赞
截至ui-router#0.2.15您可以使用$state.go()和发送选项不更新位置:
$urlRouterProvider.otherwise(function($injector) {
var $state = $injector.get('$state');
$state.go('404', null, {
location: false
});
});
- 2 回答
- 0 关注
- 741 浏览
添加回答
举报