Я собирался использовать функцию разрешений ui-routers, чтобы вставлять некоторые исправленные решения promises в мои контроллеры.
Я использовал пример plnkr, чтобы сделать пример.
Рассмотрим эти вложенные состояния: route1
и route1.list
.
У меня есть функция разрешений abc
, определенная на route1
. Теперь, когда я впервые перейду к route1
, вызывается abc
и будет разрешен. Теперь, когда я перехожу к route1.list
и обратно к route1
, abc
не вызывается снова.
http://plnkr.co/edit/mi5H5HKVAO3J6PCfKSW3?p=preview
Я предполагаю, что это намеренно, но рассмотрим этот прецедент: функция разрешения получает некоторые данные через http и должна быть обновлена /недействительна в какой-то момент, возможно, при каждом изменении состояния. Есть ли способ сделать это при использовании вложенных состояний? Если функция разрешения была вызвана при каждом инъекции, я мог бы реализовать ее любым способом: вернуть старое, разрешенное обещание или создать новый.
Я только недавно проверил это, но если состояния не были вложенными, все будет работать так, как я ожидал. Однако отказ от вложенных состояний из-за этого воняет. И наличие зависимостей разрешений, доступных во вложенных состояниях, действительно приятно.