Select 菜单,用奇异值匹配 json 列表
Select menu, match json list with singular value
我有一个 JSON 美国各州的文件,名称和两个字母的代码通过 usStates
的 factory/controller 变量绑定到菜单
[
{"name":"Alabama","code":"AL"},
{"name":"Alaska","code":"AK"}, ...]
因此,我将其用于我的菜单:ng-options="s.code for s in id.usStates"
工作正常,显示我的状态。
后端开发人员给了我 JSON 我应该 link 的,他有这样的值:
"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>
但后台数据中的值不是"linked",即不显示"AL"。所以,我假设我需要以某种方式更改我的语法,但我在这里感到困惑...... select 文档也有点混乱。
我创建了一个简化的 Plunker 来显示情况:http://plnkr.co/edit/vvbbiiFprwNiTJTgWlR3?p=preview
请参阅 ng-options
here
的文档
您当前使用的"form"是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>
如果我没看错,并且理解你的问题,那么你正在寻找这个解决方案。
将您的 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>
如果我是对的,请告诉我。
我有一个 JSON 美国各州的文件,名称和两个字母的代码通过 usStates
[
{"name":"Alabama","code":"AL"},
{"name":"Alaska","code":"AK"}, ...]
因此,我将其用于我的菜单:ng-options="s.code for s in id.usStates"
工作正常,显示我的状态。
后端开发人员给了我 JSON 我应该 link 的,他有这样的值:
"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>
但后台数据中的值不是"linked",即不显示"AL"。所以,我假设我需要以某种方式更改我的语法,但我在这里感到困惑...... select 文档也有点混乱。
我创建了一个简化的 Plunker 来显示情况:http://plnkr.co/edit/vvbbiiFprwNiTJTgWlR3?p=preview
请参阅 ng-options
here
您当前使用的"form"是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>
如果我没看错,并且理解你的问题,那么你正在寻找这个解决方案。
将您的 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>
如果我是对的,请告诉我。