関連する Sencha Touch モデルは JSON からマッピングされておらず、何が欠けているのかわかりません。
Sencha Touch モデル
Ext.define('MyApp.model.Station', {
extend: 'Ext.data.Model',
config: {
fields: [
'name',
{name: 'lat', type: 'float'},
{name: 'long', type: 'float'}
],
hasMany: {model: 'MyApp.model.Forecast', name: 'forecast'}
}
});
Ext.define('MyApp.model.Forecast', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'date', type: 'date'},
{name: 'sunshine', type: 'int'},
{name: 'temperature', type: 'float'}
],
belongsTo: 'MyApp.model.Station'
}
});
JSON
{
"name": "some name",
"lat": 11.5716,
"long": 4.68715,
"forecast": [
{
"date": "2013-09-20 13:00:00",
"sunshine": "11"
},
{
"date": "2013-09-20 14:00:00",
"sunshine": "19"
}
]
}
単純なフィールドは問題なくマップされますが、forecast
配列は未定義のままです。モデルを完全に削除して単純なフィールドとしてForecast
宣言するforecast
と (次のコード スニペットを参照)、マッピングは期待どおりに機能します。理由はありますか?
Ext.define('SunApp.model.Station', {
extend: 'Ext.data.Model',
config: {
fields: [
'name',
{name: 'lat', type: 'float'},
{name: 'long', type: 'float'},
'forecast'
]
}
});
もちろん、機能する「ソリューション」は何もないよりはましですが、欠点は、宣言され、それによって文書化された予測モデルがないことです。