ドロップダウン コンポーネントで動作するように、オプションと値のバインディングを最終的に取得しました。値の applyBinding の後のすべての JavaScript が実行されないことを除いて、私が今持っているものは機能します。一度にページにドロップダウンが 1 つしかない場合、これは問題ではありません。
ただし、ほとんどの場合、複数を使用する必要があります。このようなページでスクリプトを実行すると、最初のドロップダウンの 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);
});