私はextjs 4をテストしていますが、何かに遭遇しました.私は理解できないようです.
私は単純なオブジェクトの関連付けを持っています:スナップショット - hasMany -> モデル
現在、XTemplate を使用して View コンポーネントでこの関連付けを表示しようとしているので、XTemplate は次のようになります。
Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="snapshot" id="{id}">',
'<h1>{snapshot}</h1>',
'<p><span class="label">Created: </span>{dateString}</p>',
'<p><span class="label">Models</span></p>',
'<tpl for="models">',
'<p>{name} - {description}</p>',
'</tpl>',
'</div>',
'</tpl>',
'<div class="x-clear bottompad"></div>'
);
そして、私の JSON 応答は次のようになります (「スナップショット」ノードのみを表示):
{
"id": 1,
"snapshot": "Snapshot 1",
"created": 1305806847000,
"models": [
{
"id": 1,
"name": "ABC",
"description": "A B C"
}, {
"id": 111,
"name": "ABCDD",
"description": "A B C XCXC"
}
]
}
extjs 4 でモデルの概念が導入されたため、スナップショットとモデルのモデルを作成し、API ドキュメントに従って関連付けを作成しました。
スナップショット モデル:
Ext.define('Snapshot', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
'snapshot',
{name: 'created',type: 'date', dateFormat: 'time' }
],
associations:[
{type: 'hasMany', model: 'Model', name: 'models'}
],
idProperty: 'id'
});
モデル モデル ;P
Ext.define('Model', {
extend: 'Ext.data.Model',
belongsTo: 'Snapshot',
fields: [
{ name: 'id', type: 'int' },
{ name: 'snapshot_id', type: 'int' },
'name',
'description'
],
idProperty: 'id'
});
ここに問題があります。このセットアップを使用すると、XTemplate の実行時にモデルが表示されませんが、スナップショット モデルから関連付けを削除し、「モデル」という別のフィールドを追加するだけで問題なく動作します。
関連付けを使用しているときにモデルのリストを正しく表示するためのベスト プラクティスは何ですか? これを行うには、ネストされたテンプレートとカスタム関数を使用する必要がありますか?