使用onEnter重定向到状态时,如果新状态是当前状态的子级,则会发生无限循环。
例:
$stateProvider
.state 'inventory',
url: '/inventory'
templateUrl: 'views/inventory.html'
controller: 'InventoryCtrl'
onEnter: () ->
$state.go 'inventory.low'
.state 'inventory.low',
url: '/low'
templateUrl: 'views/inventory-table.html'
controller: 'LowInventoryCtrl'
什么时候:
$state.go 'inventory.low'
被调用后,状态inventory
被重新初始化,导致其被再次调用=无限循环。
但是,如果重定向状态为:
$state.go 'otherStateThatIsNotAChild'
不会发生此问题。我假设父状态正在重新初始化,但是为什么呢?
.go
调用父状态会被重新初始化?1)为什么在子状态上调用.go时会重新初始化父状态?
在进行过渡时,任何$ state.go / transitionTo都将导致 当前进行中的
过渡被取代。被取代的进程中转换将立即取消。由于在inventory
调用所有状态的onEnters时尚未完成向原始过渡的转换,因此取消了原始过渡,并从先前处于活动状态的状态开始了
新的 过渡inventory.low
。
参见ui-router src https://github.com/angular-ui/ui-
router/blob/master/src/state.js#L897
…
2)那么,您将如何处理重定向到子状态?
你可以…
$state.go
在$timeout()
允许重新定向之前的原始过渡才能完成。无论如何,请务必确保您的应用程序这样重定向。如果用户直接导航到清单的其他任何子状态(例如inventory.high
),则重定向仍会发生,从而迫使他们达到inventory.low
原定的目的。
index.js Button.js 我的问题是“如何从Button.js到index.js获取标志值”?(儿童对父母)。
我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档
问题内容: 我想用以下结构构建一个站点header-view,main-view,footer- view。因此,我定义了一个包含页眉和页脚的根路由。root的子代将是我的全部站点。在这些站点中,我将拥有更多的嵌套视图。 在下面的代码中,它确实显示了页眉,但未显示页脚和主视图。一旦删除父级继承,它将显示主视图,但不显示页眉和页脚。 的HTML JS 问题答案: 有一个与正在工作的矮人有关的链接。
英文原文:http://emberjs.com/guides/routing/redirection/ 过渡与重定向 在路由中调用transitionTo或者在控制器中调用transitionToRoute,将停止当前正在进行的过渡,并开启一个新的,这也用作重定向。transitionTo具有参数,其行为与link-to助手相同。 如果过渡到一个没有动态段的路由,路由的model钩子始终都会运行。
问题内容: 我有一些路线的角度应用程序,例如: 使用angular的html5路由模式,当您从应用程序内单击指向链接的链接时,这些链接可以正确解决,但是当您进行硬刷新时,这些链接当然会出现404错误。为了解决这个问题,我尝试实现基本的htaccess重写。 这适用于角度请求,但是当我尝试在我的域内加载脚本或进行ajax调用时,例如: 该脚本不会加载-它的请求被重定向,并且它尝试加载index.ht