【问题标题】:EXTJS Store load callback issueEXTJS 商店加载回调问题
【发布时间】:2013-03-17 23:07:10
【问题描述】:

我按如下方式加载我的商店:

store.load({
    params: {
        paramMap
    },
    callback: function(records, options, success) {
        if (success) {
            var form = formPanel.getForm();
            var jsonStr = Ext.JSON.encode(records[0].raw);
            var jsonObj = Ext.JSON.decode(jsonStr);
            form.loadRecord(jsonObj);
        }
    }
});

问题是我只希望在第一次加载商店时触发这个回调。之后我想将其删除,这样当我再次重新加载或加载商店时,它就不会再次调用此回调。

任何想法,我尝试在选项配置中获取回调,但这似乎不起作用。

【问题讨论】:

    标签: extjs extjs4.1


    【解决方案1】:

    不完全确定问题出在哪里。只有在商店加载回调时才会调用回调。

    store.load({callback:myCallback});
    //callback will be called
    store.load();
    //callback will not be called
    

    如果你只想做某事,你可能想使用一个设置为 true 的监听器。监听器而不是回调是我的首选方式。

    store.on('load', onStoreLoad, this, {single:true});
    

    回调函数参数 api 与负载侦听器略有不同,请查看文档。

    【讨论】:

    • 你是对的。我在商店里放了一个前置监听器后才意识到。我实际上是在调用 reload ,它使用与包含我的回调的原始调用相同的参数。所以我将其切换为调用负载。谢谢
    • 您可能还需要在第一次调用中传递范围:store.load({callback:myCallback, scope:this});
    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多