![](/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.