我已开始使用角度js,这是ng-option
的问题。
我有一个以下DOM结构,我在ng-option
内使用了ng-repeat
。我在ng-init
<div ng-init='Mainmodel="{"SelectedValue": "value1",
"dummy" : [
{
"name" : "first attribute",
"description" : "attribute first description",
"values" : [{"id":"value1", "Name":"name1"}, {"id":"value2", "Name":"name2"}]
},
{
"name" : "second attribute",
"description" : "attribute second description",
"values" : [{"id":"value1", "Name":"name1"}, {"id":"value2", "Name":"name2"}]
}
]" >
<div ng-repeat="model in Mainmodel">
<select ng-model="SelectedValue" ng-options="item.id as item.Name for item in Mainmodel.dummy.values">
<option value=""> Please select </option>
</div>
</div>
问题是,即使模型SelectedValue
设置为value1
,dropdwon也不会选择模型值。使用Please select
选择下拉列表。
任何人都可以告诉我哪里做错了。根据我的知识,dropdwon将选择ng-model
值。
注意:上述模型结构不准确。模型为有效下拉列表正在加载所有值。
答案 0 :(得分:0)
问题出在ng-options
。您使用的是item.id as item.Name for item in Mainmodel.values
,但item
没有属性id
或Name
。它有name
,description
和values
。您需要迭代values
中的项目。
您可能需要使用ng-repeat
而不是ng-repeat
ng-options
的{{1}}组合解决此问题。
类似的东西:
<div ng-repeat="model in Mainmodel">
<select ng-model="SelectedValue">
<option value="">Make a choice</option>
<div ng-repeat="item in Mainmodel.values">
<option ng-repeat="subitem in item.values" value="{{subitem.id}}">{{subitem.Name}}</option>
</div>
</div>
我从头脑中写下这个。我没有测试过,只是想给你一个想法。