![](/img/trans.png)
[英]Compare performance between Ext.data.JsonReader and Ext.data.ArrayReader
[英]Convert Ext.data.JsonReader from ExtJs 3 to ExtJs 4
我正在尝试将此阅读器从Ext 3转换为Ext4。JavaScript引发异常。 我正确转换了吗?
JavaScript例外:
Uncaught TypeError: Cannot read property 'prototype' of undefined
代码(转换后的行已注释):
Ext.onReady(function () {
Ext.Direct.addProvider(Ext.app.REMOTING_API);
//var reader = new Ext.data.JsonReader({ // convert from ext 3 to ext 4
var reader = Ext.create('Ext.data.JsonReader', {
totalProperty: 'results',
successProperty: 'success',
idProperty: 'id',
root: 'data'
}, [{
name: 'id'
}, {
name: 'email',
allowBlank: false
}, {
name: 'first',
allowBlank: false
}, {
name: 'last',
allowBlank: false
}]
);
//var writer = new Ext.data.JsonWriter({ // convert from ext 3 to ext 4
var writer = Ext.create('Ext.data.JsonWriter', {
returnJson: false,
writeAllFields: true
});
//var store = new Ext.data.DirectStore({ // convert from ext 3 to ext 4
var store = Ext.create('Ext.data.DirectStore', {
api: {
read: CRUDSampleMethods2.read,
create: CRUDSampleMethods2.create,
update: CRUDSampleMethods2.update,
destroy: CRUDSampleMethods2.destroy
},
reader: reader,
baseParams: {
dummy: 'blubb'
},
writer: writer,
paramsAsHash: true,
batchSave: false,
batch: false,
prettyUrls: false,
remoteSort: true,
listeners: {
load: function (result) { },
loadexception: function () {
},
scope: this
}
});
// ... code continues
编辑:
解决此问题:
var reader = Ext.create('Ext.data.JsonReader', {
totalProperty: 'results',
successProperty: 'success',
idProperty: 'id',
root: 'data'
});
并添加了模型:
var store = Ext.create('Ext.data.DirectStore', {
model: 'User',
api: {
JsonReader的构造函数仅接受一个参数。 因此,您的代码并未真正定义字段列表。 但是字段列表是强制性的,无论是在商店中(如果商店未使用模型),还是在模型中。 这就是当商店缺少字段声明时遇到的错误类型...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.