以故事的形式:角UI的路由器:使用兒童父母的看法
什麼我找在這裏是一個主詳細的設置。主人是列表形式,當我點擊一個鏈接(相對於特定的行/記錄(或在這種情況下的帳戶)),我想看到主視圖中的細節(字面上,「主」視圖:<div class="container" ui-view="main"></div>
) 。
我要做到這一點,保持我的URL結構(/accounts
的賬戶清單; /accounts/:id
的詳細版本),但我想詳細視圖中使用該列表使用的看法。
我現在有
的index.html
...
<div class="container" ui-view="main"></div>
...
accounts.js
$stateProvider
.state ('accounts', {
url: '/accounts',
views: {
'main': {
controller: 'AccountsCtrl',
templateUrl: 'accounts/accounts.tpl.html'
}
},
data: { pageTitle: 'Account' }
})
.state ('accounts.detail', {
url: '/:id',
views: {
'main': {
controller: 'AccountDetailCtrl',
templateUrl: 'accounts/detail.tpl.html'
}
},
data: { pageTitle: 'Account Detail' }
});
在這一點上,/accounts
路線按預期工作。它在main
視圖中正確顯示accounts/accounts.tpl.html
。在該html
中繼器中的每一行將其鏈接到其合適的/accounts/:id
URL,我正在處理嵌套狀態accounts.detail
。
什麼可能是明顯多數的你,誰知道比我更瞭解這一點,我accounts.detail
將呈現給視圖main
如果在模板accounts/accounts.tpl.html
存在命名視圖。確實如此。
但這不是我想要的。我想accounts.detail
東西呈現在父main
視圖;我希望將accounts/detail.tpl.html
的html替換爲,替換的accounts/accounts.tpl.html
的html,找到index.html: <div class="container" ui-view="main"></div>
。
那麼我怎麼能做到這一點?
我的解決方案在上下文中 的訣竅是,作爲回答說,成立URL方案,以確定哪個子狀態「默認」。我用純英語解釋此代碼的方式是,父類是抽象的,具有適當的URL,「默認」子類具有「相同」URL(由''
指示)。
如果您需要進一步澄清,只需發表評論,我會分享任何更多的指導。
.config(function config($stateProvider) { $stateProvider
.state ('accounts', {
abstract: true,
url: '/accounts',
views: {
'main': {
templateUrl: 'accounts/accounts.tpl.html',
controller: 'AccountsCtrl'
}
},
data: { pageTitle: 'Accounts' }
})
.state ('accounts.list', {
url: '',
views: {
'main': {
templateUrl: 'accounts/list.tpl.html',
controller: 'AccountsListCtrl'
}
},
data: { pageTitle: 'Accounts List' }
})
.state ('accounts.detail', {
url: '/:id',
views: {
'main': {
templateUrl: 'accounts/detail.tpl.html',
controller: 'AccountDetailCtrl'
}
},
data: { pageTitle: 'Account Detail' }
});
有一個類似的問題,所以我想通過這個,你最終把所有的以前的代碼從賬戶控制器和模板到新帳戶列表文件:contacts.html
來源之內? –
@ aron.duby老實說,它已經有一段時間了......我最終不需要在這種情況下列出賬戶,但從我記得的,不。如果你看到Matt Way的回答,我用他的修改代碼作爲我的指導。所以帳戶控制器包含其中的所有分層邏輯;模型本身不包含任何內容。它只是引用列表和詳細模型。 –
真棒問題,真棒答案,謝謝 –