这是我的代码:
function getStore (json) {
var reader = new Ext.data.JsonReader({
root : 'data',
successProperty: 'success',
totalProperty: "rows",
fields : [
{name: 'num', allowBlank:'true'},
{name: 'date', dateFormat:'d.m.Y H:i:s', type: 'date'},
{name: 'signerFIO', type: 'string'},
{name: 'checkSign', type: 'boolean'}
]
});
var store = new Ext.data.JsonStore ({
data : json,
reader : reader
});
return store;
}
从服务器到达的数据是:{"data":[{"num":"111","signerFIO":"hello","checkSign":true,"date":"25.05.2012"}],"success":1,"rows":1}
我试图将'json'函数参数设置为原始json(当它到达时)和Ext.util.JSON.decode(response.responseText)
我在FF中尝试过这段代码,在FireBug中我遇到了奇怪的h is undefined
错误。
有人知道出了什么问题吗?
更新
此
var store = new Ext.data.JsonStore ({
data : json,
fields : ['data']
});
对我来说没有错误,但也没有加载任何数据。
答案 0 :(得分:1)
我真的不确定您尝试使用此代码做什么,但这会使其正常工作(假设json是已解码的对象而非字符串):
Ext.define("MyItem", {
extend: "Ext.data.Model",
fields: [
{name: 'num', allowBlank:'true'},
{name: 'date', dateFormat:'d.m.Y H:i:s', type: 'date'},
{name: 'signerFIO', type: 'string'},
{name: 'checkSign', type: 'boolean'}
]
});
function getStore (json) {
var store = new Ext.data.JsonStore ({
data: json.data,
model: MyItem
});
return store;
}
答案 1 :(得分:0)
问题在于读者(实际上,我不知道有什么问题)。 这样:
function getStore (jsonRequestUrl) {
var store = new Ext.data.JsonStore ({
autoLoad : false,
proxy : new Ext.data.HttpProxy({ url: jsonRequestUrl, method: 'POST' }),
root : 'data',
successProperty : 'success',
totalProperty : "rows",
idProperty : "id",
fields : [
{name: 'num', type: 'string', mapping: 'num'},
{name: 'signerFIO', type: 'string', mapping: 'signerFIO'},
{name: 'checkSign', type: 'boolean', mapping: 'checkSign'},
{name: 'date', dateFormat:'d.m.Y', type: 'date', mapping: 'date'}
]
});
store.load();
return store;
}
为我工作。