Угловая защита маршрута маршрутизатора или (де) разрешение - PullRequest
0 голосов
/ 07 сентября 2018

Я широко использую резольверы в Angular, и они великолепны. Они разрешают мои данные, когда я перемещаюсь глубже во вложенный маршрутизатор. Однако я также хотел бы разрешить маршруты, то есть, когда я вернусь обратно в дерево маршрутизаторов, я хотел бы выполнить код.

Архитектурное описание

По сути, у меня есть сложное меню заголовка, которое находится в подмодуле, имеет API-интерфейс общедоступной службы, который имеет публичные функции, которым я могу передать состояние. Ака. У меня много компаний, у которых много контрактов. Если я перемещу маршрутизатор вниз к компании, он отправит компанию в заголовок, который вычислит его новое состояние и отобразит его. Если я перейду дальше вниз, он дополнительно отправит контракт и рассчитает новое состояние. Теперь, если я вернусь к маршрутизатору обратно на уровень компании, я бы хотел удалить контракт путем «отмены разрешения».

Служба заголовка может получать входные данные от нескольких модулей в приложении, которые загружаются лениво, поэтому я не могу включить их в заголовок при загрузке приложения. Единственным другим вариантом является создание общедоступного API-интерфейса заголовка, который каждый может добавить в зависимости, а затем передать состояние.

Сценарий реальной жизни (где C - ребенок B, а B - ребенок A).

Resolvers:

[А, В, С]

Маршрутизация:

A -> B -> C -> B -> A

Порядок стрельбы:

А (решительность), В (решительность), С (решительность)

Сценарий, который я хочу (где C - ребенок B, а B - ребенок A).

Resolvers:

* +1032 * [А, В, С] * 1 033 *

Маршрутизация:

A -> B -> C -> B -> A

Порядок стрельбы:

A (решительность), B (решительность), C (решительность), A (де-решительность), B (де-решительность), А (де-решительность)

Короче говоря: Я хотел бы разрешить маршрут в Angular, это возможно?

Или какие-нибудь другие хорошие идеи о том, как выполнить требуемую функциональность при перемещении вверх по дереву маршрутизации?

...