2014-10-04 21 views
10

因爲ngRoute我一直在玩UI,路由器並不完全掩蓋什麼,我需要根據我需要多個嵌套視圖不同的佈局。我無法在UI-Router中弄清楚如何加載默認嵌套視圖,而無需單擊鏈接。我創造了什麼,我在一個plunkerUI-路由器如何自動加載父視圖中的嵌套的視圖作爲默認

是平均粗例子本質上有內每兩個主要途徑有哪些主機嵌套視圖的容器。我想加載一個默認視圖到他們而不必點擊一個ui-sref。

<h1>Auth Panel</h1> <-- main route 1 
Just a container for login/forgot/reset 
<hr/> 
<a ui-sref="auth.login">Show Login</a><br> <-- can click to load nested view, but want to autoload 
How to show automatically /login within the panel <br> 
without having to click show login? 
<div ui-view></div> <-- child to autoload with /login 

感謝

+3

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-set-up-a-defaultindex-child-state – 2014-10-04 20:59:50

+0

謝謝,這是偉大的。不知道我是如何錯過的。 – mtpultz 2014-10-04 22:38:01

回答

12

在你的父母狀態添加PARAM

.state('parentState', { 
//... 
    params: { 
     autoActivateChild: 'parentState.childState' 
    } 
//... 
}) 

並把這個地方

$rootScope.$on('$stateChangeSuccess', function(event, toState){ 
    var aac; 
    if(aac = toState && toState.params && toState.params.autoActivateChild){ 
     $state.go(aac); 
    } 
}); 
+0

$ state在哪裏定義? – HappyCoder 2015-02-20 21:07:27

+0

夢幻般的解決方案。清潔。 – Tyguy7 2015-05-07 16:47:44

+0

HappyCoder,它需要只要您有事件處理(第二碼塊)被注入。大概在模塊定義 – 2015-09-14 14:51:20

-1

如果你想在自動定位到一個默認的子狀態父母的負荷,你可以觸發特定ui-sref一個點擊控制LER。

angular.element("#childElementId").trigger('click'); 
+0

請不要扔人關角路...你給任何意見之前,瞭解該工具。 – 2016-08-26 12:35:32

相關問題