2012-07-30 17 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