【问题标题】:jQuery Select2 refresh data with Knockout observableArrayjQuery Select2 使用 Knockout observableArray 刷新数据
【发布时间】:2015-07-10 07:19:10
【问题描述】:

我有一个淘汰赛observableArray,它作为数据源绑定到 select2 插件。

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());
                //}
            });

我有一个函数可以根据用户在 select2 文本框中输入的文本更改 observableArray(最终是 select2 的数据源)。

该函数成功更改了我的observableArray,但建议列表未使用更新的数据源刷新。

请注意,我不能为此使用 Ajax 功能。

【问题讨论】:

  • 我们需要对您的场景进行小规模复制才能为您提供帮助。
  • 假设,有一个国家[印度、澳大利亚、美国]的下拉列表,select2为所选国家的城市提供建议。在下拉(国家)更改时,建议列表应刷新。 select2 的 data 属性绑定到一个 ObservableArray 的城市。因此,当国家/地区选择发生变化时,我将 ObservableArray 重新分配给较新的城市列表。最终我需要刷新select2的数据源。但目前的实施并没有发生这种情况
  • 我的意思是建议您编辑您的问题,并为我们添加足够的代码以最少重现您的情况。请参阅this help-center topic 获取指导。没有它,我们将猜测您的情况/问题,因此猜测解决方案。

标签: jquery knockout.js jquery-select2 observable


【解决方案1】:

当您传递数组 dataSource() 时,我不相信它实际上是绑定的,此时您发送的不是可观察数组,而是实际的数组本身。我也不认为这会触发 KO 绑定,当作为 JSON 对象传递给 select2 时,没有可以绑定的元素。

我建议在 dataSource observableArray 上创建一个 observable,然后使用 jquery 查找 $view 并更新数据属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多