模型我有以下JSON結構:EXTJS形式結合到具有關聯
userAuth
----userAccount -- hasOne
----userAccountDetails -- hasMany
我要顯示的形式示出了從USERAUTH和userAccount數據,然後與行的每一行的柵格在userAccountDetails
這裏是USERAUTH型號代碼:
Ext.define('xxxx.model.UserAuth', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id' },
{ name: 'email' },
{ name: 'userName' },
{ name: 'refIdStr' },
{ name: 'displayName' },
{ name: 'modifiedDate', type: 'date', }
],
requires: [
'xxxx.model.UserAccount',
'xxxx.model.UserAuthDetails',
],
hasMany: [
{
model: 'xxxx.model.UserAuthDetails',
name: 'authDetails',
foreignKey: 'userAuthId',
associationKey: 'userAuthDetails',
}
],
hasOne: [
{
model: 'xxxx.model.UserAccount',
name: 'userAcount',
associationKey: 'userAccount',
getterName: 'getUserAccount',
setterName: 'setUserAccount',
}
],
proxy: {
type: 'ajax',
startParam: 'skip',
limitParam: 'take',
url: settings.ApiUrl + '/model/UserAuth/?format=json',
baseParams: {
skip: '0',
take: '10',
},
reader: {
type: 'json',
root: 'results',
successProperty: 'success',
totalProperty: 'totalCount'
}
}
});
而且userAccount模型
Ext.define('xxxx.model.UserAccount', {
extend: 'Ext.data.Model',
fields: [
{ name: 'username' },
{ name: 'id' },
{ name: 'name' },
{ name: 'email' },
{ name: 'slug' },
{ name: 'facebookId' }
],
belongsTo: 'xxxx.model.UserAuth',
proxy: {
type: 'ajax',
startParam: 'skip',
limitParam: 'take',
url: settings.ApiUrl + '/model/UserAccount/?format=json',
baseParams: {
skip: '0',
take: '10',
},
reader: {
type: 'json',
root: 'results',
successProperty: 'success',
totalProperty: 'totalCount'
}
}
});
和userAuthDetails:
Ext.define('xxxx.model.UserAuthDetails', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id' },
{ name: 'userAuthId' },
{ name: 'provider' },
{ name: 'userId' },
{ name: 'userName' },
{ name: 'displayName' },
{ name: 'firstName' },
{ name: 'lastName' },
{ name: 'email' },
{ name: 'modifiedDate' },
{ name: 'provider' },
],
belongsTo: [
{
model: 'xxxx.model.UserAuth',
isntanceName: 'userAuth',
getterName: 'getUserAuthDetails',
setterName: 'setUserAuthDetails',
associationKey: 'userAuthDetails'
}
],
proxy: {
type: 'ajax',
startParam: 'skip',
limitParam: 'take',
url: settings.ApiUrl + '/model/UserAuthDetails/?format=json',
baseParams: {
skip: '0',
take: '10',
},
reader: {
type: 'json',
root: 'results',
successProperty: 'success',
totalProperty: 'totalCount'
}
}
});
加載店工作和協會工作 - 當我打電話record.getUserAccount().get('email')
返回結果是什麼,我期望 - 所以一切工作正常。
現在,我的問題是 - 我該如何將這些數據轉換成上述形式?
我試圖做喜歡的東西:
{
xtype: 'textfield',
fieldLabel: 'username',
allowBlank: false,
maxLength: 100,
name: 'userAccount.userName'
}
思維聯想的名字可能是一個很好的提示它 - 但是,這並不從最頂部的模型工作...
數據( userAuth)工作正常 - 我似乎無法將hasOne 拖入表單中。
我還沒有嘗試過的userAuthDetails結合網格又讓人懷疑將同樣充滿挑戰
有沒有人成功地得到這個工作?我只是沿着協會的路線走,因爲我認爲這會讓這類東西變得更清潔/更簡單!
[編輯]
放棄努力,我很高興爲目前僅適用於讀取該數據與表單做到這一點。我現在試圖在行擴展器的xtemplate中顯示這些數據。
我試過以下,但它不工作!
plugins: [
{
ptype: 'rowexpander',
rowBodyTpl: [
'<p><b>Username:</b> {userName}</p>',
'<p><b>Email:</b> {userAccount.email}</p>',
'<tpl for="userAuthDetails">',
'<p>{provider}</p>',
'</tpl>'
]
}],
我需要做什麼樣的伏都教工作?根本不明顯!
ATM我想我不會再使用ExtJs--我發現自己處於最近這樣的太多黑洞中,公然應該按照您期望的方式工作 - 只是使用Google搜索顯示每個人都期望這上班。我已經使用了ExtJs多年,但我認爲現在是時候終於承認有更好的js應用程序框架了。
這是一個真正的恥辱 - 我不是什麼所有這些協會的重點是那麼! – iwayneo
那麼,按其本性形式不是形式顯示分層數據和協會在其他地方使用。但是,我同意可以提供一些映射以便它能夠工作。 – Saki
如何在模板中顯示此數據? – iwayneo