hereの例では、KnockoutJSを使用してoptgroupsで選択リストを作成しました。これは正常に動作しますが、私はその後、私自身のjavascriptオブジェクトにドロップダウンリストの値をバインドし、そのオブジェクトの特定のプロパティにアクセスしたい:KnockoutJS - optgroupとjavascriptオブジェクトでselectの値をバインドする
<select data-bind="foreach: groups, value:selectedOption">
<optgroup data-bind="attr: {label: label}, foreach: children">
<option data-bind="text: label"></option>
</optgroup>
</select>
function Group(label, children) {
this.label = ko.observable(label);
this.children = ko.observableArray(children);
}
function Option(label, property) {
this.label = ko.observable(label);
this.someOtherProperty = ko.observable(property);
}
var viewModel = {
groups: ko.observableArray([
new Group("Group 1", [
new Option("Option 1", "A"),
new Option("Option 2", "B"),
new Option("Option 3", "C")
]),
new Group("Group 2", [
new Option("Option 4", "D"),
new Option("Option 5", "E"),
new Option("Option 6", "F")
])
]),
selectedOption: ko.observable(),
specialProperty: ko.computed(function(){
this.selectedOption().someOtherProperty();
})
};
ko.applyBindings(viewModel);
ありがとうございました! – user888734
ご協力ありがとうございます!シンプルで効率的。 – Mounir
このソリューションに "optionsCaption"をどのように追加しますか? @RP Niemeyer –