0

我有一个网格面板,我在里面做了一个函数

myFunction: function(variable){ 
    grid.getStore().each(function(item) {
        if (item.get('value') == variable) {
             alert('run'); // running
             return true; // but not return true
        }
    });
    return false;
}

但是当我使用

alert(grid.myFunction('abc')); // always return false Although alert('run'); running

怎么解决 谢谢

4

1 回答 1

1

您只在each函数内部返回 true。这将使您脱离内部函数,但不会从外部函数返回 true。为了得到你想要的,你可以使用你在 之外设置的变量each,然后在最后返回它:

myFunction: function(variable){
    var found = false;
    grid.getStore().each(function(item) {
        if (item.get('value') == variable) {
            alert('run');
            found = true;
            return false;
        }
    });
    return found;
}

另请注意,从中返回 falsestore.each会中止迭代,这是您在找到记录后想要做的,所以我也在那里添加了它。请参阅此处的文档:http: //docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-each

于 2013-08-02T13:35:26.313 回答