2013-10-16 108 views
2

所以我正在探索我的應用程序的不同配置選項。我的主要目標是找到一種方法來配置最高級別的狀態/路由,即使相關的角度模塊有自己的路由/狀態聲明。還有我已經提出了幾種選擇,但我不知道他們是否可以或不可以:AngularJS UI路由器更改相關模塊的狀態

假設我有模塊1這是依賴於模塊2

1:如果模塊2宣告自己的狀態/路線,有沒有一種方法可以從模塊1中刪除或覆蓋它們?

2:有沒有一種方法可以讓我得到建議的狀態(即代表國家,如{name: 'state', templateURL: '/someURL'}和使用模塊1從邏輯上確定stateObjects給予$ stateProvider

3個對象的列表:?是否有可能?訪問stateProvider不處於配置例如,說我有一個獲取安裝在配置如下:?

tinkModule.config(function($stateProvider, $urlRouterProvider){ 
    $stateProvider.state('create', { 
     url: '/create', 
     templateUrl: 'templates/create.html' 
    }); 
    $stateProvider.state("otherwise", { 
     url: "/otherwise", 
     templateUrl: 'templates/tinkOtherwise.html' 
    }); 
    $urlRouterProvider.otherwise('/otherwise'); 
}); 

我可以添加一個「審覈」狀態,他們已經通過創建狀態之後

Pl輕鬆讓我知道是否有其他選項,我沒有想到,並讓我知道,如果任何上述是可能的。

回答

3

聽起來像你的主要目標是定義各個模塊之間的狀態以及延遲加載狀態。有一些現有功能可以完成這些功能。在各個模塊

註冊狀態: https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-ui-router-from-multiple-modules

你需要用咕嚕手工打造0.3.0雖然:https://github.com/angular-ui/ui-router#developing

然後,如果你想延遲加載(上即時定義狀態),你可以閱讀有關$ stateNotFound事件:https://github.com/angular-ui/ui-router/wiki#state-change-events

並查看懶加載UI路由器測試:https://github.com/angular-ui/ui-router/blob/master/test/stateSpec.js#L196-L208

該測試顯示如何嘗試將go設置爲未定義狀態,並獲取$ stateNotFound錯誤,該錯誤允許您在此時定義缺失狀態。假設您可能已經在錯誤回調中定義了它,它總是會再次嘗試查找狀態。

+0

這實質上就是我要找的。通過測試,他們爲stateProvider創建一個局部變量,以便他們可以延遲加載內容。我如何在配置之外的應用程序中訪問stateProvider? –

+0

我在哪裏可以看到0.2.0和0.3.0之間的差異? –

+0

對不起,我現在纔回復你!所以目前還沒有真正的可靠的更新日誌來看看0.2.0到0.3.0的區別,我們正在努力盡快添加更新日誌。 –

相關問題