1

我一直在尝试制作一个由 JSON 填充的级联下拉列表。我发现当我通过使用下拉选择将前端的性别值从男性更改为女性时。在此之后,女性选项是唯一保留在下拉列表中的选项。我认为我通过对值进行标定来做什么:性别正在覆盖性别变量?

任何帮助将不胜感激。我是 Knockout 的新手,所以我希望我想要实现的目标是可能的。

提前致谢。

这是我创建的代码:

HTML:

<select data-bind="options: gender, optionsText: 'name', value: gender"></select><br />
<select data-bind="options: gender().garments, optionsText: 'garmentName'"></select>

JS:

function streckViewModel(){ 

};

$.getJSON("js/garments.json", null, function(garmentData, status, xhr){
streckViewModel = ko.mapping.fromJS(garmentData);
ko.applyBindings(streckViewModel);
});

JSON:

{
"gender":[

    {

        "name" : "male",

            "garments": [
                { "garmentName": "hoodie" },
                { "garmentName": "t-shirt" }
            ]

    },

    {
        "name" : "female",

            "garments": [
                { "garmentName": "hoodie" },
                { "garmentName": "blouse" }
            ]
    }

]

}

4

1 回答 1

1

尝试将您的 HTML 更改为:

<select data-bind="options: gender, optionsText: 'name', value: selectedGender"></select><br />
<select data-bind="options: selectedGender.garments, optionsText: 'garmentName'"></select>
于 2013-06-10T15:30:48.850 回答