2012-07-30 29 views
1

我一直在寻找的源代码的rallymultiobjectpicker,更具体地,这条线,所述initEvents函数内:拉力应用SDK 2.0:调用在rallymultiobjectpicker重新滤波器商店来验证()由管理听众

this.mon(this.inputEl, 'keyup', this.validate, this); 

它调用属于对象实例的验证函数。但是,经过进一步的检查,我没有看到任何代码会触发重新过滤商店的行为,从而加载/追加外部值,这正是我目前所看到的。

下面是验证功能(http://bit.ly/MXH6CB)来源:

validate : function() { 
    var me = this, 
     isValid = me.isValid(); 
    if (isValid !== me.wasValid) { 
     me.wasValid = isValid; 
     me.fireEvent('validitychange', me, isValid); 
    } 
    return isValid; 
} 

注:对于它的价值,的RemoteGroup,remoteSort和remoteFilter都设置为false。

编辑:事实上,它不是验证功能,将会触发行为,但initFiltering函数调用初始化一个按键监听器,在文本输入过滤AutoFilterable类。

_onStoreLoad: function() { 
    this.removePlaceholderText(); 
    this.groupRecords(); 
    this.initFiltering(); 
} 

回答

2

该过滤由AutoFilterable类处理,该类是SDK中的私有类。验证的调用不会触发过滤。

+0

好的。我现在可以看到。它调用_onStoreLoad函数中的initFiltering来初始化侦听器以对文本输入进行过滤。但是,如果调用这个数据,那么数据是从原始存储中提取的?因此,基本上,如果我将商店设置为我自己的派生类型之一,则输入将导致过滤发生,从原始商店返回匹配该输入模式的结果,然后重新填充该控件。我想没有简单的解决方法。我试着覆盖_onStoreLoad来排除调用,但是然后displayField没有被填充。 – user1417835 2012-07-31 18:51:35