javascript - IgniteUI 组合框数据源更新与 knockout

标签 javascript knockout.js infragistics

我创建了一个 igComboBox,其数据源设置为 observableArray。当我向数组添加项目时,我希望组合框的数据源自动提取新值,而无需显式设置 self.datasource:sourceListArray() 。我怎样才能实现这个目标?

    self.sourceListArray = ko.observableArray();

    $("#dataSource").igCombo({
        allowCustomValue: false,
        showDropDownButton: true,
        enableClearButton: false,
        dataSource: self.sourceListArray(),
        nullText: "Select Data Source",
        selectionChanged: self.dataSourceChanged
    });

    function PopulateSourceList(sourceList) {

        for (var i = 0; i < sourceList.length; i++) {
            self.sourceListArray.push(sourceList[i].ServiceName);
        }
        $("#dataSource").igCombo({ dataSource: self.sourceListArray() }); //don't want this
    }

最佳答案

您当前的示例并未真正使用 Knockout support for the Ignite UI Combo 。查看此示例 KnockoutJS Binding ,相比之下,您正在以默认方式初始化 Combo,而不是经历 Knockout 绑定(bind)过程(我们的处理程序在此启动)。解决方案很简单 - 定义组合如下:

<div id="dataSource" data-bind="igCombo: { 
                allowCustomValue: false,
                showDropDownButton: true,
                enableClearButton: false,
                dataSource: self.sourceListArray(),
                nullText: 'Select Data Source',
                selectionChanged: self.dataSourceChanged
              }"></div>

然后一切都会正常 - http://jsfiddle.net/damyanpetev/athF2/

关于javascript - IgniteUI 组合框数据源更新与 knockout ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20010926/

相关文章:

javascript - 如何将 JSON 对象转换为 Javascript 数组?

javascript - .NET 的 Javascript 实现有哪些?

c# - 如何在WPF中禁用XamDataGrid单元格编辑

sorting - 使用 bindingsource 在正确位置向用户排序的 wingrid 添加新行

javascript - 一个 "fixed"<div>-Tag (Footer) resize height of another

javascript - KnockoutJS 绑定(bind)问题 - 无法读取属性

javascript - 使用 KnockoutJS 将 JSON 对象映射到 View 模型的一部分

javascript - Knockout.js:嵌套会导致重新订阅吗?

c# - 如何从 aspx 页面访问 silverlight 控件的属性和方法?

javascript - 如何使用 jQuery 从 URL 获取端口号?