2015-07-10 21 views
-1

我有一個淘汰賽observableArray作爲數據源綁定到select2插件。jQuery Select2刷新數據與淘汰賽observableArray

var typeahead = $view.select2({ 
       formatSelection: format, 
       formatResult: format, 
       allowClear: true, 
       multiple: false, 
       data: self.dataSource(), 
       //minimumInputLength: 1, 
       //query: function (queryObj) { 
       // //queryObj.callback(function() { return CDSData; }); 
       // //console.log(queryObj.term); 
       // self.searchText(queryObj.term); 
       // //alert(self.dataSource()) 
       // //queryObj.callback(self.dataSource()); 
       //} 
      }); 

我有一個功能基於由用戶輸入到文本框中選擇2文本改變observableArray(最終選擇2的數據源)。

該函數成功更改我的observableArray,但建議列表沒有用新數據源刷新。

請注意,我無法爲此使用Ajax功能。

+0

我們需要您的場景的一個小的repro來幫助你。 – Jeroen

+0

假設有一個下拉列表的國家[印度,澳大利亞,美國]和select2爲選定的國家的城市提供建議。在下拉(國家)更改時,建議清單應刷新。 select2的數據屬性綁定到ObservableArray的城市。所以,當國家選擇變化時,我將ObservableArray與新的城市列表重新分配。最終我需要刷新select2的數據源。但其目前的執行情況並未發生 –

+0

我的意思是建議您編輯您的問題,併爲我們添加足夠的代碼,以最低限度*重現您的情況。請參閱[本幫助中心主題](http://stackoverflow.com/help/mcve)以獲取指導。沒有它,我們會猜測你的情況/問題,並因此猜測解決方案。 – Jeroen

回答

0

當你傳遞數組dataSource()時,我不相信它實際上是綁定的,你不是在這個時候發送可觀察數組,而是實際數組本身。我也不認爲這會觸發KO綁定,當它作爲JSON對象傳遞給select2時,它沒有綁定的元素。

我會建議在dataSource observableArray上創建observable,然後使用jquery查找$ view並更新數據屬性。