Angular js ng-options无法设置值

时间:2014-10-13 17:55:49

标签: javascript angularjs angularjs-directive angularjs-ng-repeat

我已开始使用角度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值。

注意:上述模型结构不准确。模型为有效下拉列表正在加载所有值。

1 个答案:

答案 0 :(得分:0)

问题出在ng-options。您使用的是item.id as item.Name for item in Mainmodel.values,但item没有属性idName。它有namedescriptionvalues。您需要迭代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>

我从头脑中写下这个。我没有测试过,只是想给你一个想法。