gpt4 book ai didi

javascript - Angular 中的条件 "otherwise"路由

转载 作者:数据小太阳 更新时间:2023-10-29 04:03:34 24 4
gpt4 key购买 nike

我熟悉 Angular 中的 "$urlRouterProvider.otherwise('{route here}')" 语法,可以在 Angular UI-Router 中用作 catch all。

我想知道的是 - 有没有一种方法可以根据错误输入路由时的父状态进行条件“否则”路由?

例如,假设我有以下配置:

$stateProvider
.state('core', {configuration here})
.state('core.page1', {configuration here...})
.state('dashboard', {configuration here})
.state('dashboard.page1', {configuration here})

$urlRouterProvider.otherwise('/core/page1');

我希望发生的是,无论何时输入具有 "/core/{route here}" 的路线,
如果它不匹配任何当前状态,则路由回 '/core/page1',
并且只要输入的路线具有 "/dashboard/{route here}" 与任何当前状态都不匹配,就会返回到 "/dashboard/page1".

有没有人有这方面的经验,或者知道我该如何完成? Angular 是否内置了允许此类行为的任何内容?

提前致谢!

最佳答案

如图所示

How not to change url when show 404 error page with ui-router

.otherwise() 不必是字符串(url)...它可能是一个明智的决策者:

$urlRouterProvider.otherwise(function($injector, $location){
var state = $injector.get('$state');
if(....)
state.go('core');
else(...)
state.go('dashboard');
...
return $location.path();
});

文档:

$urlRouterProvider.otherwise(rule)

Defines a path that is used when an invalid route is requested.

string - The url path you want to redirect to or a function rule that returns the url path.
The function version is passed two params: $injector and $location services, and must return a url string.

关于javascript - Angular 中的条件 "otherwise"路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com