1

rallymultiobjectpicker のソース コード、より具体的には、initEvents 関数内の次の行を見てきました。

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 に設定されていることです。

EDIT : 実際、動作をトリガーするのは検証関数ではなく、キープレス リスナーを初期化し、テキスト入力をフィルタリングする AutoFilterable クラスへの initFiltering 関数呼び出しです。

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

1 に答える 1

2

フィルタリングは、SDK 内のプライベート クラスであるAutoFilterableクラスによって処理されます。検証の呼び出しはフィルタリングをトリガーしません。

于 2012-07-31T18:11:49.067 に答える