Sencha Touch 2 プロジェクトのデータビューにネストされた JSON データを表示したいと考えています。JSON には、進行中のサービス リクエストの詳細が含まれています。
JSON:
{
"success": true,
"message": "Request retrieved with id:789",
"data": {
"id": 789,
"description": "request description",
"subject": "request subject",
"progresses": [
{
"description": "progress description 1"
},
{
"description": "progress description 2"
},
{
"description": "progress description 3"
}
]
}
}
データを取得するために、requestdetails 用、progress 用、そしてもちろん store 用の 2 つのモデルがあります。
私の店:
Ext.define('MyApp.store.RequestStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.RequestModel'
],
config: {
autoLoad: true,
autoSync: true,
model: 'MyApp.model.RequestModel'
}
});
そして私のモデル:
Ext.define('MyApp.model.RequestModel', {
extend: 'Ext.data.Model',
uses: [
'MyApp.model.ProgressModel'
],
config: {
fields: [
{
name: 'id'
},
{
name: 'description'
},
{
name: 'subject'
}
],
hasMany: {
associationKey: 'progresses',
model: 'MyApp.model.ProgressModel'
},
proxy: {
type: 'rest',
url: 'http://myurl.com/rest/request/789',
reader: {
type: 'json',
rootProperty: 'data'
}
}
}
});
Ext.define('MyApp.model.ProgressModel', {
extend: 'Ext.data.Model',
uses: [
'MyApp.model.RequestModel'
],
config: {
fields: [
{
name: 'description'
}
],
belongsTo: {
model: 'MyApp.model.RequestModel'
}
}
});
これは私の見解です:
Ext.define('MyApp.view.MyDataView', {
extend: 'Ext.dataview.DataView',
config: {
store: 'RequestStoreId',
itemTpl: [
'<div>',
' <div>ID</div>',
' <div>{id}</div>',
' ',
' <div>Subject</div>',
' <div>{subject}</div>',
' ',
' <div>Description</div>',
' <div>{description}</div>',
'</div>',
'',
'<h2><b>Progress:</b></h2>',
'<tpl for="progressmodels">',
' <div>',
' <div>{description}</div>',
' </div>',
'</tpl>'
]
}
});
id
、requestType
、description
および を表示すると正常にsubject
動作します。進行状況の場合、すべての進行状況の説明を表示したいのですが、最初の説明のみが表示されるようになりました。
私はそれを解決するために多くのことを試し、インターネットを検索しましたが、それが何であるかわかりません。
ここで何が間違っていますか?私は何かが恋しいですか?同じ問題を抱えている人はいますか?
前もって感謝します!