knockout.js 如何使用去底色从复杂对象中设置选择选项的值?

7gcisfzg  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(158)

如何从给定的对象创建两个选择框?我需要创建两个选择框与国家下拉和州下拉选择。

const optionsList =  ko.observableArray ([
    {
        'AD':{'name':'Andora'},
        'AE':{'name':"United Arab Emirates"},
        'AG':{'name':"Antigua & Barbuda"},
        'ES':{'name':"Spain", 'regions':{
                "22": {
                    "code": "A Coruсa",
                    "name": "A Coruña"
                },
                "23": {
                    "code": "Alava",
                    "name": "Alava"
                },
                "24": {
                    "code": "Albacete",
                    "name": "Albacete"
                }
                "25": {
                    "code": "Zaragoza",
                    "name": "Zaragoza"
                }
            }},
        'AT':{'name':"Austria", 'regions':{
                "95": {
                    "code": "WI",
                    "name": "Wien"
                },
                "96": {
                    "code": "NO",
                    "name": "Niederösterreich"
                }
            }},
        'AU':{'name':"Australia", 'regions':{
                "569": {
                    "code": "ACT",
                    "name": "Australian Capital Territory"
                },
                "570": {
                    "code": "NSW",
                    "name": "New South Wales"
                },
                "571": {
                    "code": "VIC",
                    "name": "Victoria"
                },
                "572": {
                    "code": "QLD",
                    "name": "Queensland"
                }
            }}
    }
])

我想用knockout JS创建两个下拉列表。
1.国家/地区列表
1.如果对象包含对象中的区域列表,则为区域列表。(如西班牙、奥地利和澳大利亚)
我不知道如何创建两个选择框在敲除使用上述对象。
感谢您提供的有用信息。

dsekswqp

dsekswqp1#

您可以定义一个regions计算函数,该函数查看选定的国家/地区并仅返回其地区:

const regions = ko.pureComputed(
  () => selectedCountry()?.regions ?? []
  //        can be null -^         ^^- if a country has no regions,
  //                                   return an empty list
);

你发布的数据使用了对象,而我期望的是数组,所以它略有不同。
第一个

相关问题