我有3個組成部分角1.x的組件,UI路由器1層的狀態變化
- 應用組件
- 登錄組件
- 儀表板組件
應用組件
應用程序組件是組件樹的主要組件。該組件還包含基本佈局,該佈局由內容的標題和包裝器組成。
<div class="container-fluid">
<navigation routes="$ctrl.routes"></navigation>
</div>
<ui-view></ui-view>
登錄元器件
登錄組分是呈現登錄表單,並做它魔術的成分。
控制板組件
儀表板組件呈現的用戶數據。
美國
{
name: 'app',
url: '',
abstract: true,
component: 'appComponent',
resolve: {
routes:() => Routes
}
},
{
name: 'app.login',
url: '/',
label: 'Login',
data: {
navigations: ['navbar-no-user']
},
component: 'loginComponent',
resolve: {
redirectUrl:() => 'app.dashboard'
}
},
{
name: 'app.dashboard',
url: '/',
label: 'Dashboard',
data: {
navigations: ['navbar']
},
component: 'dashboardComponent'
}
方案
遊客正在加載的應用程序,一個導航欄應該是隻有導航欄,沒有用戶的項目,如登錄可見。訪問者登錄併成爲用戶,現在應該看到只有導航欄項目的導航欄,如儀表板。
問題
我找了這個場景的解決方案,通常有一個onStateChange事件,我可以用這一個控制器內。我現在看到的唯一選項是呈現每個組件中特定的導航。
我通常會爲儀表板添加一個父狀態(登錄後所有狀態)。你可以輕鬆地添加一個抽象的父狀態「儀表板」,其主視圖就像你爲「應用程序」狀態所做的那樣。 –
@ daan.desmedt這可能是一個正確的選項。你知道其他可能的策略嗎? – Sedenko
您可以使用'rootscope'變量來指示何時顯示視圖部分......但我認爲'狀態'視圖對您的'摘要循環來說更邏輯且密度更低。 –