【问题标题】:Select menu, match json list with singular value选择菜单,用奇异值匹配json列表
【发布时间】:2015-03-17 14:40:02
【问题描述】:

我有一个美国各州的 JSON 文件、名称和 2 个字母的代码,通过 usStates 的工厂/控制器变量绑定到菜单

[
 {"name":"Alabama","code":"AL"},
 {"name":"Alaska","code":"AK"}, ...]

所以,我将它用于我的菜单:ng-options="s.code for s in id.usStates"

工作正常,显示我的状态。

后端开发人员给了我应该链接的 JSON,他有这个值:

"subCity": "",
"cityTown": "Selma",
"stateProvince": "AL",
"postalCode": "000000",
"zip4": "",
"countryCode": "US"

所以我尝试将此项目添加为我的 ng-model,

<select ng-model="id.partner.partnerAddressInfo.stateProvince" ng-options="s.code for s in id.usStates"></select>

但它没有与后端数据中的值“链接”,即它不显示“AL”。所以,我假设我需要以某种方式更改我的语法,但我在这里感到困惑......选择文档也有点混乱。

我创建了一个简化的 Plunker 来展示这种情况:http://plnkr.co/edit/vvbbiiFprwNiTJTgWlR3?p=preview

【问题讨论】:

    标签: javascript json angularjs input angular-ngmodel


    【解决方案1】:

    如果我没有错,并且理解了您的问题,那么您正在寻找这个解决方案。

    把你的html改成

     <select class="form-control" ng-model="selected" ng-init="selected=partner.partnerAddressInfo.stateProvince" ng-options="s.code as s.name for s in usStates"></select>
    

    如果我是对的,请告诉我。

    【讨论】:

    • selected= 我在任何地方都没有看到。非常感谢。我希望选定的值能够“保存”回 json 以进行表单提交?
    • 在表单提交的情况下使用 ng-submit(user) 和 user.selected 以便将数据带到表单中。感谢您的确认。
    【解决方案2】:

    请参阅ng-options here 的文档

    您当前使用的“表单”是label for value in arrray

    您需要的是select as label for value in array,其中select 会将表达式结果绑定到模型。
    如果您不提供select 表达式,则默认为value

    因此,您需要将语法更改为 -

    <select ng-model="id.partner.partnerAddressInfo.stateProvince"
            ng-options="s.code for s.code for s in id.usStates">
    </select>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2023-01-29
    • 2012-07-10
    • 1970-01-01
    相关资源
    最近更新 更多