2

我有一个 Ext.Data.Store。而且我有一个函数,需要在加载商店时调用一次。只有一次。起初我这样做:

function invokeMe() {
alert("!");
}

actionTemplateStore.on('load', function () {
    invokeMe();
}

但是这个解决方案有一个问题:我真的需要一次调用“invokeMe”-function

4

2 回答 2

1
actionTemplateStore.on('load', function () {
    if (!actionTemplateStore.actionInvoked) {
        invokeMe();
        actionTemplateStore.actionInvoked = true;
    }
}

更新:正如劳埃德所说,您也可以使用 {single:true} 选项。

actionTemplateStore.on('load', yourFunction, {single:true});
于 2012-10-18T08:39:42.707 回答
0

试试这个:

function invokeMe() {
alert("!");
}

actionTemplateStore.on('load',function () {
    invokeMe();
},this,{single: true});

我们传入this作用域和一个配置对象,single: true使其只执行一次。

你也可以这样做:

var onLoad = function(store) {
    alert('!');
    store.un('load',onLoad);
}

actionTemplateStore.on('load',onLoad);
于 2012-10-18T08:39:15.477 回答