IgniteUI组合框数据源更新与淘汰赛

时间:2013-11-15 21:29:29

标签: 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
    }

1 个答案:

答案 0 :(得分:2)

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

<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/