Ext.data.Model
クラスはバックエンドモデルを表します。サーバーコードの場合と同様に、そのフィールドの一部はreference
プロパティを使用して別の宣言モデルタイプにすることができます。モデルのgetAssociatedData()
関数を使用すると、参照されるすべてのフィールドを含むオブジェクトが返されることがわかりました。しかし、それらは参照オブジェクトのデータオブジェクトを含んでいます。フルオブジェクトのデータオブジェクトは、Ext.data.Model
で初期化されています。プリミティブオブジェクトへのアクセスが強制され、モデルの設定されたプロキシなどをロード/保存することはできません。これは、この機能を使用する正しい/唯一の方法ですか?また、参照フィールドの列をグリッドに追加する方法も探していましたが、うまくいきません...参照フィールドを宣言することの有用性を疑うようになり始めています。Extjs:モデルのフィールド参照のAssociate Dataを使用する正しい方法は何ですか?
例コード:チャドPeruggiaが言ったように
Ext.define('MyApp.ModelA', {
extend: 'Ext.data.Model',
fields: [{
name: 'modelb',
reference: 'MyApp.ModelB'
}]
});
Ext.define('MyApp.ModelB', {
extend: 'Ext.data.Model',
fields: [{
name: 'modelId',
type: 'int'
}]
});
//...
var modelA = new MyApp.ModelA().load();
var modelB = modelA.getAssociatedData().modelb; //This is the only way to access it.
var modelBId = modelB.get('modelId') //This returns undefined because the function .get doesn't exist.
var modelBId = modelB.id; //This works because it is a simple object property access.
//...
この 'var modelB = modelA.getModelb()'を実行してみてください。 –