我觉得我可能会因此而复杂化。请随时向我发送不同的方向。
我正在尝试使用模型中定义的字段(键)将只有值的记录数组(值)加载到模型对象中。
我的模特
Ext.define('MyApp.model.AppData', {
extend: 'Ext.data.Model',
fields: [
{name: 'key'},
{name: 'value'},
{name: 'desc'},
{name: 'index', type: 'int'},
{name: 'type'}
]
});
我的商店
Ext.define('MyApp.store.AppData', {
extend: 'Ext.data.ArrayStore',
groupField: 'type',
model: 'MyApp.model.AppData',
autoload: false,
constructor: function (config) {
var data = [
['val1', 'val2', 'val3', 'val4', 'val5'],
['val1', 'val2', 'val3', 'val4', 'val5'],
...
];
this.loadData(data);
}
});
所以这里的最终目标是让商店中的数据看起来像
[
{'key':'val1', 'value':'val2', 'desc':'val3', 'index':'val4', 'type':'val5'},
{...},
{...}
]
目前正在获取'me.removed is undefined'错误。我知道它与loadData()函数有关。这让我觉得我在某个地方没有正确使用它。
我可以对使用键值对格式化的数据进行硬编码......但这只是感觉不可维护和错误的方法。
谢谢!
答案 0 :(得分:1)
您可以使用商店的数据配置:
var myModel=Ext.define('MyApp.model.AppData', {
extend: 'Ext.data.Model',
fields: [
{name: 'key'},
{name: 'value'},
{name: 'desc'},
{name: 'index', type: 'int'},
{name: 'type'}
]
});
var myData = [
['val1', 'val2', 'val3', 0, 'val5'],
['val1', 'val2', 'val3', 1, 'val5']
];
var store = Ext.create('Ext.data.ArrayStore', {
model:myModel,
data:myData
});