1

这是我的 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绑定但无法使其正常工作。有任何想法吗?

4

2 回答 2

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);

见小提琴

于 2013-09-09T10:53:55.133 回答
0

扩展@Anders 的建议。这是实际的文档:

于 2013-09-09T10:18:03.103 回答