あなたがうまくやっていることを願っています。
私はextjs4を初めて使用し、関連付けのサンプル例に取り組んでいます。
私は2つの異なるクラスのユーザーと卒業証書を持っています関連して、私は定義しました。
ユーザーhasManyDiplomas、およびDiplomasはUserに属します
私のモデルは以下の通りです
User.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',
},
});
Diploma.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'
}]
});
=====================マイストアは以下のとおりです。======================= =
Diploma.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');
}
}
}
});
User.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)
何も得られません。アイテムには何も含まれていません...卒業証書からユーザーを取得するにはどうすればよいですか。
そしてもう1つ....卒業証書モデルにプロキシを記述しないと、次のようなエラーが発生します。
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
私の要件に従って使用します
ここで、modelは私の子クラスのレコードであり、userは私の親クラスです。
そして、私は必要とされていない私の卒業証書モデルでプロキシを使用していました....だから、取得していました
Ext.data.proxy.Server.buildUrl():ServerProxyを使用していますが、URLが指定されていません。
上記のエラー。
皆さんありがとう !:)