2015-07-10 75 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并更新数据属性。