我想讀取extjs數據存儲的特定值並在本地處理它。 響應XML是這樣的:當接收到響應,我想讀「BNAME」價值如何讀取extjs數據存儲
<user><name>abc</name><surname>def</surname><book><bname>book1</bname></book></user>
我店將只有一個用戶入口。到目前爲止,我已經嘗試了兩種方法,都給出了錯誤。
approach1:
Ext.define('user', {
extend: 'Ext.data.Model',
fields: [ 'name', 'surname'],
hasMany: {model: 'Book', name: 'book'},
proxy: {
type: 'rest',
url : request,
reader: { type: 'json', root: 'user'}
}
});
Ext.define('Book', {
extend: 'Ext.data.Model',
fields: [ 'name'],
belongsTo: 'user'
});
var userstore = Ext.create('Ext.data.Store', {
model: "user"
});
incidentstore.load({
callback: function() {
var inc = userstore.first();
var bk = inc.getBook();
console.log(dev.get('bname'));
}
});
運行上述代碼給出錯誤 'Ext.define不是一個函數'。
Approach2:
var proxy1 = new Jx.JxHttpProxyRest({
url: request,
api : {
read : { headers : { 'Accept' : APP + '.abc.def.usermanage.user+json;version=1' } }
}
});
var reader = new Ext.data.XmlReader({
rootProperty : 'user',
record : 'book',
id : 'id',
}, [{ name : 'bname', mapping : 'book > bname'} ]);
var writer = new Ext.data.XmlWriter({
encode : false
});
var newstore = new Ext.data.Store({
id : 'book',
restful : true,
proxy : proxy1,
remoteSort : true,
reader : reader,
writer : writer,
autoload: true,
listeners: {
load: function() {
console.log(newstore.data.first());
}
}
});
Ext.data.DataProxy.addListener('load', function(proxy, type, action, options, res) {
console.log(res.responseText);
});
newstore.load({
params : { start : 0, limit : myPageSize },
});
上面的代碼不會在控制檯上顯示任何內容。
我是新來的extjs,不知道如何從響應訪問'bname'值。這將是巨大的,如果有人能幫助
您準確使用哪個版本的ExtJs? (顯然4,但哪一個)。 'Ext.define不是一個函數'可能是你在索引中沒有包含正確的Ext文件的結果 - 你能提供一個包含庫的位嗎?另一個可能的問題是'請求',你究竟在哪裏設置? – Izhaki
extjs版本是3.1.1。我認爲這就是爲什麼它使Ext.define不是函數錯誤。對於我正在使用的版本,@ lontivero的代碼是否有任何解決方法? –