我有一个后端,它通过 ajax 代理返回我的数据存储使用的一些 JSON 数据。然后数据显示在数据视图中。我需要做的是在数据视图显示之前对客户端接收到的数据进行一些转换。
我尝试了各种方法并决定将处理程序附加到数据存储的load
事件:
Ext.getStore('MyStore').on('load', function (store, records, successful, operation, eOpts) {
for (var i = 0; i < records.length; i++) {
var e = records[i];
e.data.myField = "constantPrefix" + e.data.myField;
}
});
处理程序触发并正确更改记录。
问题是,数据视图仍然显示未更改的数据。整个方法是否正确?如果是这样,为什么它不起作用?如果没有 - 你将如何实现这一目标?
以下是数据视图代码:
Ext.define('MyProject.view.MyDataView', {
extend : 'Ext.DataView',
xtype : 'my-dataview',
config : {
store : 'MyStore',
baseCls : Ext.os.deviceType === 'Phone' ? 'my-dataview-phone' : 'my-dataview-tablet',
mode: 'MULTI',
allowDeselect: true,
selectedCls: 'tick-visible',
triggerEvent: 'itemdoubletap',
itemTpl : [
'<img class="my-photo my-dataview-photo" src="',
'{myField}"></img>'
].join('')
}
});