我一直在看rallymultiobjectpicker的源代码,更具体地说,这一行,在initEvents函数中:
this.mon(this.inputEl, 'keyup', this.validate, this);
其调用属于对象实例的验证函数。然而,经过进一步的检查,我没有看到任何代码会触发重新过滤存储的行为,从而加载/附加外部值,这就是我目前看到的。
以下是validate函数的来源(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。
EDIT:事实上,触发行为的不是validate函数,而是对AutoFilterable类的initFiltering函数调用,该调用初始化按键侦听器,对文本输入进行过滤。
_onStoreLoad: function() {
this.removePlaceholderText();
this.groupRecords();
this.initFiltering();
}
过滤由AutoFilterable类处理,该类是SDK中的私有类。对validate的调用不会触发筛选。