我有以下路由設置爲我的應用程序:嵌套視圖
$stateProvider
.state('mac', { // domain.com/mac
url: "/mac",
views: {
'body': {
templateUrl: 'partials/products/mac.body.html'
},
'content': {
templateUrl: 'partials/products/mac.home.html'
}
}
})
.state('mac.design', { // domain.com/mac/design
url: "/design",
views: {
'body': {
templateUrl: 'partials/products/mac.body.html'
},
'content': {
templateUrl: 'partials/products/mac.design.html'
}
}
})
.state('mac.features', { // domain.com/mac/features
url: "/features",
views: {
'body': {
templateUrl: 'partials/products/mac.body.html'
},
'content': {
templateUrl: 'partials/products/mac.features.html'
}
}
})
.state('iphone', { // domain.com/iphone
url: "/iphone",
views: {
'body': {
templateUrl: 'partials/products/iphone.body.html'
},
'content': {
templateUrl: 'partials/products/iphone.home.html'
}
}
})
...
的index.html
樣子:
<div ui-view="body"></div>
然後裏面mac.body.html
:
<div ng-include="'partials/header.html'"></div>
<div class="view-container">
<div ui-view="content" class="view-frame"></div>
</div>
然後終於裏面mac.home.html
:
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<h1>Mac</h1>
</div>
</div>
</div>
該body
視圖加載罰款與頭包括,但內容不...任何想法爲什麼?
內容文件應該是容易找到,但我想我已經排除了這種可能性的問題,因爲如果我更換templateUrl
與template: 'test content'
也沒有出現......所以現在看來似乎看不到實際ui-view="content"
另一種方式來看待這個:
.state('home', {
url: "/",
views: {
'layoutFile': {
templateUrl: 'partials/layoutDefault.html'
},
'contentFile': {
templateUrl: 'partials/home/index.html'
}
}
})
所以基本上我可以選擇哪些視圖顯示的內容。但是它是如何讓contentFile視圖被狀態看到,當它嵌套在另一個狀態中時,像這樣...
那你的第二塊代碼有什麼解決方案?因爲它是相同的狀態,所以我不會創建像'home.content'這樣的嵌套狀態,還是我會這樣?因爲用戶無法訪問它。 – Cameron 2014-09-19 10:04:50
我不確定你的場景是什麼.....也許將內容視圖移到身體視圖之外,以便它不是身體視圖的子節點?你可以讓孩子的身體和內容的狀態。用戶可以訪問這些內容,您可以使主頁狀態爲抽象,並使您的着陸頁成爲家中的孩子。 – 2014-09-19 10:08:44
看看我的修改後的問題。基本上我想爲每個MAIN部分(例如Mac,iPhone)加載不同的主體模板,然後爲每個子區域加載不同的內容模板。 – Cameron 2014-09-19 10:12:43