2017-06-16 107 views
3

是否角(V 4.1.1)路由器canActivate採取以上的功能路由器canActivate超過1個衛

{ 
    path: '', 
    component: SomeComponent, 
    canActivate: [guard1, guard2, ...] 
} 

更多的應該是這樣的工作?如果不是,他們爲什麼會在列表中,如果它假設只帶一名後衛

因爲我有類似的東西,即使guard1返回falseguard2仍然會被執行。

在此先感謝

角4.1.1

+0

他們被一個接一個執行 –

+0

他們是守衛,不應該被用作工作者線程。他們應該是彼此獨立的。否則,使用解析器和依賴注入來使它們相互依賴。 – cgTag

回答

3

這應該工作,但我相信,警衛不平行的順序執行。所以第二個不會等到第一個返回值。如果你的守衛是同步的,這應該不會影響你,但如果他們是異步的,你會遇到這個「問題」。

如果你需要你的衛兵互相依賴,你可以分開支票的公共部分,你的所有衛兵都可以調用這個邏輯。但我認爲在大多數情況下,這不應該是必要的,因爲如果其中只有一個失敗,路由不會被激活。

+0

那麼如果第二個衛兵依賴於第一個衛兵 – phacic

+1

我的理解是,最好的做法是把它們寫成獨立/單獨的檢查,它們不應該相互依賴。 –

+1

正式注意。非常感謝 – phacic