При использовании 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
в дочернем состоянии? - Как же тогда вы отредактируете перенаправление на дочернее состояние?