Angular предоставляет защиту маршрутизатора canLoad
и canActivate
. CanLoad
и canActivate
охранники используются для определения того, следует ли загружать и активировать отложенно загруженный модуль или компонент соответственно.
Использование этих охранников имеет два недостатка. Во-первых, вам обычно нужно определить оба. Кроме того, нет простого способа определить несколько маршрутов с одним и тем же путем, которые можно было бы активировать на основе определенных условий.
К счастью, новая мощная защита решает эти проблемы в следующей версии Angular — защита CanMatch
.
Защита CanMatch
будет контролировать, можем ли мы использовать маршрут и, как побочный эффект, можем ли мы загрузить код. Кроме того, когда один из определенных сторожей возвращает false
, маршрут пропускается, и вместо него обрабатываются другие маршруты.
Мы можем, например, использовать защиту CanMatch
для загрузки различных компонентов на основе флага функции. В настоящее время нам нужно сделать то, что я объяснил в одной из моих предыдущих статей:
Теперь мы можем сделать следующее:
Когда функция защиты возвращает значение true, она загружает и активирует новую версию todos; в противном случае будет использоваться устаревшая версия.
В качестве альтернативы мы можем вернуть дерево URL или перенаправить на другой маршрут.
Мы также можем использовать эту технику для загрузки различных компонентов в зависимости от роли пользователя.
Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular и JS!