使用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
时,为什么会重新初始化父状态? - 那么,你如何处理重定向到子状态?