我希望在JavaScript数组中保存AJAX对Ext代理的响应所收到的值。我的代码如下所示:
var nodelist = [];
var store = Ext.create('Ext.data.Store', {
model: 'Nodes',
url: 'sequencing',
proxy: {
type: 'ajax',
url: 'sequencing',
reader: {
type: 'json',
root: 'Nodes'
}
},
listeners: {
'load': function() {
var StoreLength = store.data.length;
for (var i = 0; i < StoreLength; i++) {
nodelist.push(store.data.items[i].data.text);
};
}
},
autoLoad: true
});
store.load();
var node_rec = nodelist;但是store.load();不调用上面的load侦听器?有人能解决我的问题吗?
发布于 2018-04-17 19:19:26
在当前事件处理程序的出口处调用store.load()。数据存储的加载是异步进行的,所以当它加载存储时,执行将从下一行继续进行。因此,在调用load之后,不能直接使用nodelist变量,因为在这一点上不会调用load,所以nodelist将是空的,即使存储最终被填充。
因此,您可以向load方法添加一个回调,该方法一旦存储加载就会被调用。
store.load({
callback: function(records){
console.log(records); //verify whether you are getting records from the URL
}
});https://stackoverflow.com/questions/49808774
复制相似问题