以下是我的JSON
的摘录{
"PreferredLanguage":"Italian",
"PreferredLanguageDisplay":"Italiano",
"Languages":[
{"Selected":false,"Text":"English (UK)","Value":"0"},
{"Selected":false,"Text":"English (US)","Value":"1"},
{"Selected":true,"Text":"Italiano","Value":"2"},
{"Selected":false,"Text":"Français","Value":"3"}
]
}
现在,我将Knockout中的下拉列表绑定到Languages
因此:
<div class="item">
<select data-bind="foreach: Languages(), value: PreferredLanguage">
<option data-bind="text: Text"></option>
</select>
</div>
这一切都有效,但我想再做一件事。默认情况下,所选Languages
数组中的第一个值,但我希望选择其文本与PreferredLanguageDisplay
匹配的选项。
我尝试使用if
绑定但是不能让它工作。有什么想法吗?
答案 0 :(得分:2)
您应该使用选项绑定,如下所示:
查看:
<select data-bind="options: Languages, value: PreferredLanguage, optionsText: 'Text', optionsValue : 'Value'">
</select>
查看模型:
var vm = {
"PreferredLanguage": ko.observable('2'), // Value of Italiano
"PreferredLanguageDisplay": "Italiano",
"Languages": [{
"Text": "English (UK)",
"Value": "0"
}, {
"Text": "English (US)",
"Value": "1"
}, {
"Text": "Italiano",
"Value": "2"
}, {
"Text": "Français",
"Value": "3"
}],
};
ko.applyBindings(vm);
答案 1 :(得分:0)
扩展@Anders的建议。这是实际的文档: