2015-05-09 124 views
0

有人可以給ui-view提示嗎? 我有一個主ui-view,然後兩個嵌套的意見,但由於某些原因,這兩個沒有得到加載。AngularJS,嵌套UI-視圖

$stateProvider 

    .state('index',{ 
    url:'', 
    templateUrl: './app/modules/main.html' 
}) 
    .state('index.feed',{ 
    parent:'index', 
    templateUrl: './app/modules/feed.html' 

}) 
    .state('index.status',{ 
    parent: 'index', 
    templateUrl: './app/modules/status.html' 
    }); 

主要頁面加載,但其他兩個意見,我不main.html中我 有:

<div class="voucher-display" ui-view="index.feed"></div> 
<div class="feed" ui-view="index.feed"></div> 

我只是得到一個空文件。

回答

0

您在html中傳遞給ui-view的值不是狀態的名稱,它應該是視圖的名稱。

feed.html和status.html中的html是否應該替換或與main.html一起顯示?無論哪種情況會改變的解決方案,但假設你總是希望main.html中,並希望在那裏展示他們各自的嵌套視圖選擇了feed.html和status.html,你會做這樣的事情:

.state('index', { 
    url: '/', 
    views: { 
    'main': { 
     templateUrl: './app/modules/main.html' 
    } 
    } 
}) 
.state('index', { 
    views: { 
    'main': { 
     templateUrl: './app/modules/main.html', 
    }, 
    'detail': { 
     templateUrl: './app/modules/feed.html' 
    } 
    } 
}) 
.state('index.status', { 
    views: { 
    'main': { 
     templateUrl: './app/modules/main.html', 
    }, 
    'detail': { 
     templateUrl: './app/modules/status.html' 
    } 
    } 
}); 

而在你的html中,你需要兩個映射視圖的div標籤。

<div ui-view="main"></div> 
<div ui-view="detail"></div> 

現在main.html中應始終在第一個div顯示,並feed.html或status.html,當他們的狀態是活動的,將在第二個div出現。

這裏是ui-view directive的文檔,這裏是關於ui-view的good blog post

+0

它沒有工作,因爲我有index.html,然後從我所說的main.html中,而那些「狀態」,「飼料」我叫他們從內主html的。類似... -index.html - main.html(main ui-view) --- status.html(status uiview) --- feed.html(feed uiview) –

0

一對夫婦嘗試後,這個工作加載嵌套:

$stateProvider 
    .state('index', { 
     url: '', 
     views: { 
      'main': { 
       templateUrl: './app/modules/main.html' 
      }, 
      '[email protected]': { 
      templateUrl: './app/modules/status.html' 
      }, 
      '[email protected]':{ 
      templateUrl: './app/modules/feed.html' 
      } 
     } 
}) 

index.html的有:

<main ui-view="main"></main> 

和main.html中裏面我有:

<div class="voucher-display" ui-view="feed"></div> 
<aside ui-view='status'></aside> 

但現在我又遇到了另一個問題,如果我想從我的index.html加載另一個ui-view,我該怎麼辦?因爲這不起作用:

.state('clients',{ 
     url:'/clients', 
      templateUrl: './app/modules/clients.html' 
     });