我正在解析.json文件,并在选择中显示所有可用选项:
<div bo-switch-when="dropdown">
<fieldset>
<select ng-options="options.text for option in question.body.options" ng-model="question.answer" ></select>
</fieldset>
</div>
它正在工作,但不是我想要的。我只想拥有这个对象的价值,而不是将整个对象都放到我的模型中。通过Chrome开发工具:
这个对象(如图所示)在我的模型中。 我只想提供文字。
但是当我将ng-options更改为:
ng-options="options.text for option.text in question.body.options"
根本不起作用......
答案 0 :(得分:10)
根据ngOptions documentation,您可以指定要用作选项值select as label for (key , value) in object
的对象的属性
其中select
是绑定到模型的属性,label
是用作选项标签的属性。
这里不需要ngRepeat。
在你的情况下,只需在select和label中使用.text属性:
<select ng-options="option.text as option.text for option in question.body.options" ng-model="question.answer" >
答案 1 :(得分:8)
这实际上是Angular开发人员的常见问题。
您可以使用ng-repeat
,如下所示:
<select ng-model="question.answer" >
<option ng-repeat="option in question.body.options" value="{{option.text}}">{{option.text}}</option>
</select>