2016-02-10 55 views
0

我見過很多關於使用DI作爲@CanActivate裝飾器的問題。我知道自定義噴油器的實施提供了RouterCanActivate vs在構造函數中重定向

我的問題是關於一般設計的問題:使用@CanActivate而不是在等效組件構造函數內重定向的優點(或缺點)是什麼。最後一個是不好的解決方案嗎?

回答

1

CanActivate特別設計爲完全在組件外部。這就是爲什麼很難注入Router。使用構造函數,組件實例需要被創建,然後由於重定向而立即銷燬。

+0

所以你會推薦使用'CanActivate'並注入服務和路由器? – gerric

+0

這可能取決於用例。但總的來說是的。並且有計劃改進'CanActivate'中DI的限制。 –

+0

好的。謝謝! – gerric