-1
目前在我的一些控制器中,我有一個邏輯,例如,如果符合某些條件,則將用戶重定向到其他路線。如何在AngularJS的route.resolve中處理「複雜」邏輯
我試圖將這些邏輯從控制器移動到route.resolve
以防止顯示「無效」視圖,然後將用戶重定向到其他地方。
我已經在route.resolve
中處理驗證,但這只是一行 - authService.requireUser()
。在更復雜的邏輯例如我需要擁有當前的用戶對象,根據路徑參數獲取一些資源,對結果進行一些計算,如果滿足某些條件,將用戶重定向到一個地方,否則重定向到另一個地方等等。基本上,它是很多代碼並將它所有進入路由定義似乎都不是很乾淨。
有沒有人有解決方案如何處理它?也許使用單獨的「路由解析器」對象?或者,最好將它放在控制器中,並在頁面加載時使用標誌(isLoaded
)顯示微調,並且只有在所有內容加載完成後才顯示正確的視圖。
謝謝,這就是我現在已經或多或少的。 問題是我需要做一些事情 - 驗證用戶(一個服務),查找所有任務(第二個服務),根據用戶**和**任務對象檢查一些條件 - 如果滿足條件1重定向到一個URL,如果滿足條件2,則重定向到另一個,否則只是通過並返回任務。所以這個處理所有這些邏輯的新服務就是爲了這個特定的路線。我只是想知道如何處理它 - 如果我應該創建一個路徑解析器服務,保持所有路線等邏輯 – szimek
我認爲創建一個路由解析器服務將更容易測試也 – dimirc