在按钮单击时动态添加下拉列表并使用knockout绑定值

时间:2014-08-21 12:49:57

标签: knockout.js

我必须在点击按钮时动态添加下拉列表。我正在尝试更新数组,但它没有在下拉列表中显示值

<a data-bind='click:addBillItem'>Add</a>

我的视图模型如下:

function AssignmentViewModel() {
self.billDescriptions = ko.observableArray();

this.addBillItem = function() {
            var = '<select id="ddlBillItemDescription" data-bind="';
            html += 'options:billDescriptions,';
            html += 'optionsText:"ItemName",';
            html += 'optionsCaption: "Select Bill Description",';
            html += 'optionsValue:"ItemName",';
            html += 'value:BillItemDescription';
            html += '</select>';
            $("#dropdown").append(html);
            self.billDescriptions(billItemDescriptions);
var billItemDescriptions = GetBillItemDescriptions();
self.billDescriptions(billItemDescriptions);
        };
}
ko.applyBindings(new AssignmentViewModel());

1 个答案:

答案 0 :(得分:1)

我建议有两个选项:

1)如果您只需要其中一个下拉列表,请将其放入带有if绑定的标记中。然后,您需要做的就是翻转绑定到if的标记以显示您的下拉列表。

2)如果您要进行多次下拉菜单,请在标记中设置foreach绑定,并在模板中添加下拉列表(使用options绑定)。然后,在viewmodel中,有一个表示各个下拉列表的对象数组(这些对象将绑定到options绑定。