我终于得到了选项和值的绑定,可以在我的下拉组件上工作。我现在的工作除了未执行该值的 applyBinding 之后的所有 javascript 之外。当我一次在页面上只有一个下拉菜单时,这不是问题。
但是,大多数时候,我需要使用多个。当我在这样的页面上单步执行脚本时,它会为第一个下拉菜单执行 applyBinding 并停止。没有进一步的脚本运行,只有第一个下拉菜单有效。
为什么是这样?更重要的是,我该如何解决?
以下是相关的代码行:
$(function () {
var $thisdd = $("#@ddname"); //the JQuery selector for my dropdown
var dropdownItems = getDropdownItemsFromDl("@ddname");
var newitem = ko.observable({ cname: ddcname, cvalue: ko.observable($thisdd.val()), cpublishtopic: "" });
classificationsViewModel.push(newitem());
var viewModel =
{
dditems : dropdownItems
};
$("#@ddname").attr("data-bind", "value: classificationsViewModel()[" + classificationsViewModel.indexOf(newitem()) + "].cvalue, options: dditems, optionsText: 'value', optionsValue: 'key'");
ko.applyBindings(viewModel);
ko.applyBindings(classificationsViewModel()[classificationsViewModel.indexOf((newitem())].cvalue);
});