选择菜单,匹配具有奇异值的json列表

时间:2015-03-17 14:40:02

标签: javascript json angularjs input angular-ngmodel

我有一个美国州的JSON文件,名称和双字母代码通过工厂/控制器变量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>

但它没有&#34;链接&#34;使用后端数据中的值,即它不显示&#34; AL&#34;。所以,我认为我需要以某种方式改变我的语法,但我在这里感到困惑...选择的文档也有点令人困惑。

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

2 个答案:

答案 0 :(得分:0)

请参阅ng-options here

的文档

&#34;表格&#34;您当前使用的是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>

答案 1 :(得分:0)

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

将您的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>

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