我试图通过数据视图显示一些数据,但由于某种原因,我得到一个空文本消息(没有数据)。 这是我的数据视图:
xtype : 'dataview',
emptyText : 'No data',
id : 'cartdata',
multiSelect : true,
plugins : new Ext.DataView.DragSelector( { dragSafe : true } ),
store : new Ext.data.JsonStore({
url : '/aecms/user-photos-view/',
autoLoad : true,
root : 'data',
fields : [
'images'
],
listeners : {
scope : this,
load : function(store) {
var data = store.reader.jsonData;
if (data.systemMessage) {
infoReport(data.systemMessage.title, data.systemMessage.message, data.systemMessage.icon);
}
}
}
}),
tpl : new Ext.XTemplate(
'<tpl for=".">',
'<tpl for="images">',
'<a title="{id}">test</a>',
'</tpl>',
'</tpl>'
)
这是来自php的数据:
{"data":{"images":{"id":"2"}},"status":"success"}
我是extjs的新手,感谢任何帮助。
答案 0 :(得分:1)
从外观上看,您没有正确返回successProperty值。更改您的PHP代码的响应,如下所示。
商店中JsonReader的默认successProperty是“成功”。 ExtJs将在您的服务器响应中查找此属性。
http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.JsonReader-cfg-successProperty
此外,您可能希望将数据作为json数组返回,而不是对象。你不需要数据数组中的图像对象。
服务器响应:
{ "data":[{"id":"2"}], "success":true }
使用Javascript:
...
store : new Ext.data.JsonStore({
url : '/aecms/user-photos-view/',
autoLoad : true,
root : 'data',
fields : [
'id'
],
listeners : {
scope : this,
load : function(store) {
var data = store.reader.jsonData;
if (data.systemMessage) {
infoReport(data.systemMessage.title, data.systemMessage.message, data.systemMessage.icon);
}
}
}
})
tpl: new Ext.XTemplate(
'<tpl for=".">',
'<a title="{id}">test</a>',
'</tpl>'
)