Knockout.js 在单击按钮时动态添加下拉列表,并使用knockout绑定值
我必须在点击按钮时动态添加下拉列表。我试图更新数组,但它没有在下拉列表中显示值Knockout.js 在单击按钮时动态添加下拉列表,并使用knockout绑定值,knockout.js,Knockout.js,我必须在点击按钮时动态添加下拉列表。我试图更新数组,但它没有在下拉列表中显示值 <a data-bind='click:addBillItem'>Add</a> 添加 我的视图模型如下所示: function AssignmentViewModel() { self.billDescriptions = ko.observableArray(); this.addBillItem = function() { var = '<selec
<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());
函数赋值视图模型(){
self.billDescriptions=ko.observableArray();
this.addBillItem=函数(){
var='我建议有两个选项:
1) 如果您只需要这些下拉列表中的一个,请将其放入带有If
绑定的标记中。然后,您只需翻转绑定到If
的标志即可显示下拉列表
2) 如果要创建多个下拉列表,请在标记中设置一个foreach
绑定,并使用模板中的下拉列表(使用选项
绑定)。然后,在viewmodel中,有一个表示各个下拉列表的对象数组(这些是将绑定到选项绑定的内容。@Origineil我在页面加载上已经有了一个ddlBillItemDescription下拉列表,并对其应用了绑定。我想将数据绑定到我在按钮上添加的下拉列表。单击应用绑定是绑定数据的方式。如果在执行此操作时DOM中不存在html,则没有绑定它。请参阅@Origineil,谢谢,使用您的示例进行了尝试,但我遇到了一个错误,如“您无法对同一元素多次应用绑定”。正如预期的那样,如果您多次单击它。请描述(在您的帖子的编辑中)您试图达到的目的是为了阐明为什么要以这种方式处理问题。无论哪种方式,直接jQuery
DOM操纵都不是理想的“击倒”方式,您通常可以严格通过绑定组合来实现所需的行为。正是我曾经采用的方法,但必须参加会议:)。