2015-10-19 102 views
0

this question,我要動態地添加UI路由器狀態時動態增加狀態,但我不知道如何做到這一點給出如下:角UI路由器:未配置

我們先從一個小允許用戶導航登錄過程的路線集(最多5個):用戶登錄(多步登錄過程),然後選擇他們想要使用的產品類型和角色(假設用戶具有多個產品類型/角色否則他們會繞過這個觀點)。在這一點上,我想出去我的服務,並獲得用戶有權訪問的路由列表,給定用戶標識,產品類型,&角色 - 我打算髮送一個非常匹配的數據結構數組提供給$stateProvider.state(...)

在我的app.run.js中,我正在檢查$rootScope.$on("$stateChangeStart"並將用戶從視圖中移到多步驟登錄過程中查看,因此知道何時需要到我的服務中以加載可用路線。

當路由被加載時,我可能會在cookie中放置一個標誌來表明它已經正確加載了這個用戶/產品/角色。

我不認爲一個提供者真的在這裏有道理,因爲我不想在config上加載路由。它感覺不對(不知道爲什麼)調用服務來加載stateChangeStart中的路由。

這種方法合理嗎?

注:我也看到有一個outstanding request能夠從$ stateProvider刪除狀態。在這個請求被執行的同時,我們如何清除$ stateProvider的路由(除了瀏覽器刷新)?

回答

0

要在配置階段後添加狀態,您應該使用ui-router-extra包中的未來狀態功能。

由於沒有官方支持刪除路由,所以您可能會合併到this PR以獲取某些內容,但您必須添加功能以從urlRouterProvider中刪除該條件,因爲這是該PR的錯誤。