希望你做得很好。
我是 extjs4 的新手,正在研究关联的示例。
我有 2 个不同的类用户和文凭,我已经定义了。
用户拥有许多文凭,而文凭属于用户
我的模型如下
用户.js
Ext.define('MyApp.model.User', {
extend : 'Ext.data.Model',
idProperty : 'userId',
fields : [{
name : 'userId',
type : 'integer'
}, {
name : 'userName',
type : 'string',
}],
hasMany : {
model : 'MyApp.model.Diploma',
name : 'diplomas',
},
});
文凭.js
Ext.define('MyApp.model.Diploma', {
extend : 'Ext.data.Model',
idProperty : 'diplomaId',
fields : [{
name : 'diplomaId',
type : 'integer'
}, {
name : 'diplomaName',
type : 'string',
}, {
name : 'userId',
type : 'integer'
}],
associations : [{
model : 'MyApp.model.User',
name : 'user',
type : 'belongsTo'
}]
});
===================== 我的店铺如下======================= =
文凭.js
Ext.define('MyApp.store.Diploma', {
extend : 'Ext.data.Store',
model : 'MyApp.model.Diploma',
autoLoad : true,
listeners : {
'load' : {
fn : function(store, records, success, operation) {
console.log('Diplomas are loaded');
}
}
}
});
用户.js
Ext.define('MyApp.store.User', {
extend : 'Ext.data.Store',
model : 'MyApp.model.User',
requires:['Ext.data.proxy.LocalStorage'],
autoLoad : true,
listeners : {
'load' : {
fn : function(store, records, success, operation) {
console.log('User is loaded');
}
}
},
data : [{
userId : 1,
userName : 'Rishabh Shah',
diplomas:{
userId : 1,
diplomaId:1,
diplomaName:'IT'
}
}, {
userId : 2,
userName : 'Rakesh Shah',
diplomas:{
userId : 2,
diplomaId:2,
diplomaName:'CE'
}
}, {
userId : 3,
userName : 'Rashmin Shah'
}],
proxy:{
type:'memory',
reader:{
root:'data'
}
}
});
我可以从这样的用户那里获得文凭并且可以获得结果
Ext.getStore("User").getAt(0).diplomasStore.getAt(0)
但是,当我尝试这样做时
Ext.getStrore("Diploma") or Ext.getStrore("Diploma").getAt(0)
我什么也得不到。items 不包含任何内容...如何从文凭中获取用户。
还有一件事..如果我不在我的文凭模型中编写代理..它给了我这样的错误..
Ext.data.proxy.Server.buildUrl():您正在使用 ServerProxy,但尚未为其提供 url。
请指导我。
谢谢。
感谢您的回复..@john..我可以从用户那里获得文凭..我想从文凭中获得用户...我自己尝试过..找到了解决方案...
我将有以下 json。
[
{
"depId": 1,
"depName": "CE",
"employees": [
{
"empId": 1,
"firstName": "Rishabh",
"lastName": "Shah"
}, {
"empId": 2,
"firstName": "Smit",
"lastName": "Patel"
}
]
}, {
"depId": 2,
"depName": "IT",
"employees": [
{
"empId": 1,
"firstName": "Parag",
"lastName": "Raval"
}, {
"empId": 2,
"firstName": "Rakesh",
"lastName": "Prajapati"
}
]
}, {
"depId": 3,
"depName": "EE",
"employees": [
{
"empId": 1,
"firstName": "Parag EE",
"lastName": "Raval EE"
}, {
"empId": 2,
"firstName": "Rakesh EE",
"lastName": "Prajapati EE"
}
]
}, {
"depId": 4,
"depName": "EC",
"employees": [
{
"empId": 1,
"firstName": "Parag EC",
"lastName": "Raval EC"
}, {
"empId": 2,
"firstName": "Rakesh EC",
"lastName": "Prajapati EC"
}
]
}, {
"depId": 5,
"depName": "Chemial E",
"employees": [
{
"empId": 1,
"firstName": "Parag",
"lastName": "Raval"
}, {
"empId": 2,
"firstName": "Rakesh",
"lastName": "Prajapati"
}
]
}, {
"depId": 6,
"depName": "ME",
"employees": [
{
"empId": 1,
"firstName": "Parag",
"lastName": "Raval"
}, {
"empId": 2,
"firstName": "Rakesh",
"lastName": "Prajapati"
}
]
}, {
"depId": 7,
"depName": "Civil Engineer",
"employees": [
{
"empId": 1,
"firstName": "Parag",
"lastName": "Raval"
}, {
"empId": 2,
"firstName": "Rakesh",
"lastName": "Prajapati"
}
]
}
]
我会model.getAssociatedData().user
根据我的要求使用
其中模型是我的子类记录,用户是我的父类..
我在我的文凭模型中使用了不需要的代理......所以,正在
Ext.data.proxy.Server.buildUrl():您正在使用 ServerProxy,但尚未为其提供 url。
上面提到的错误。
谢谢大家!:)