私の観点からは、ExtJS で関連付けを使用してモデルの最も単純な方法を構築します。
モデル: 投稿-- hasOne -->ユーザー
私がしたこと:
- メモリ プロキシの使用
- ルールに従ってください: モデル内のプロキシ
- で投稿オブジェクトを読み込みます
Post.load(...)
。
しかし、ユーザーオブジェクトを取得しようとすると、正しくロードされません:
(ここに完全なソース: http://jsfiddle.net/7XRw4/4/ )
Ext.define('Post', {
extend: 'Ext.data.Model',
fields: ['user_id', 'content'],
hasOne: 'User',
proxy: {
type: 'memory',
data: {
posts: [
{id:1, user_id:1, content:'foo'},
{id:2, user_id:1, content:'bar'}
]
},
reader: {
type: 'json',
root: 'posts'
}
}
});
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['name'],
proxy: {
type: 'memory',
data: {
users: [
{id:1, name:'hans'},
{id:2, name:'klaus'}
]
},
reader: {
type: 'json',
root: 'users'
}
}
});
Ext.onReady(function() {
console.log("Ext.onReady() invoked...");
Post.load('1', {
success: function(record, operation) {
thePost = record;
console.log('thePost:', thePost);
theUser = thePost.getUser();
console.log('theUser:', theUser);
alert('The user name: ' + theUser.get('name'));
// The user object will not be right loaded! Why?
}
});
});