我想創建一個route
層次結構,其中包含ui-router
,我遇到了問題。在抽象父母上有多個視圖的ui路由器
我有三層模板:訪客模板,用戶模板,管理模板。所以我index.html
頁:
<html>
<head><!-- All common JS/CSS files such as Foundation and AngularJS --></head>
<body>
<!-- Some common directive such as <reveal></reveal> used for dialog/popin pages -->
<ui-view></ui-view>
</body>
</html>
然後,我的每個層的,我有另外一個模板。例如,對於guest
我:
guest.html
<nav><!-- The navigation for guest page --></nav>
<ui-view></ui-view>
和user
它是稍微複雜些:
user.html現在
<nav><!-- The navigation for user page --></nav>
<ui-view="left"></ui-view>
<ui-view="main"></ui-view>
<ui-view="right"></ui-view>
,我的狀態guest
很簡單:
$stateProvider
.state('guest', {
abstract: true,
templateUrl: 'path/to/guest.html'
})
.state('guest.login', {
url: '/login/',
template: '<login></login>'
});
問題與user
一起上升。就像上面一樣,我創建了一個abstract
狀態,將user.html
添加到模板,並讓我訪問3個視圖。通常情況下,如果我再擴大的狀態,我可以寫三種狀態
.state('user.home', {
url: '/home/',
views: {
'left': { template: 'Left template' },
'main': { template: 'Main template' },
'right': { template: 'Right template'}
}
});
的問題是,我想在這裏定義另一個抽象的,叫user.schedule
,而這些抽象狀態有幾個孩子。當我確定這個狀態時,我仍然想要訪問我最初在user.html
中創建的三個視圖。但是,由於這是一個抽象類,我需要爲它定義模板。
我不知道如何繼續這個抽象類。我認爲我應該做的是:
.state('user.schedule', {
abstract: true,
views: {
'left': { template: '<ui-view></ui-view>' },
'main': { template: '<ui-view></ui-view>' },
'right': { template: '<ui-view></ui-view>'}
}
})
.state('user.schedule.view', {
url: '/schedule/:day/:month/:year',
views: {
'left': { template: 'This should work?' },
'main': { template: 'But it does not' },
'right': { template: 'I even tried giving the ui above a name and calling them here'}
}
})
我該怎麼辦?
「當我做定義這種狀態下,我還是想有機會獲得我原本在user.html創建的三個觀點。」你的意思是你想讓這些視圖與你的'user.schedule'視圖一起顯示嗎? –
自從問了這個問題之後已經有一段時間了,但我可能會面臨完全相同的問題,並且不太清楚爲什麼這裏的答案不適合我。要求你提供一個這樣或那樣的東西? –