首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ext JS存储负载侦听器不工作

Ext JS存储负载侦听器不工作
EN

Stack Overflow用户
提问于 2018-04-13 03:15:34
回答 1查看 2.1K关注 0票数 2

我希望在JavaScript数组中保存AJAX对Ext代理的响应所收到的值。我的代码如下所示:

代码语言:javascript
复制
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侦听器?有人能解决我的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 19:19:26

在当前事件处理程序的出口处调用store.load()。数据存储的加载是异步进行的,所以当它加载存储时,执行将从下一行继续进行。因此,在调用load之后,不能直接使用nodelist变量,因为在这一点上不会调用load,所以nodelist将是空的,即使存储最终被填充。

因此,您可以向load方法添加一个回调,该方法一旦存储加载就会被调用。

代码语言:javascript
复制
store.load({
    callback: function(records){
        console.log(records); //verify whether you are getting records from the URL     
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49808774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档