我有一个对象如下。我必须将其显示为下拉列表:
var list = [{id:4,name:"abc"},{id:600,name:"def"},{id:200,name:"xyz"}]
在我的控制器中,我有一个带有值的变量。该值决定了下拉列表中默认选择的数组中的上述三个项目中的哪一个:
$scope.object.setDefault = 600;
当我创建一个下拉表单项如下:
<select ng-model="object.setDefault" ng-options="r.name for r in list">
我面临两个问题:
>列表生成为
<option value="0">abc</option> <option value="1">def</option> <option value="2">xyz</option>
代替
<option value="4">abc</option> <option value="600">def</option> <option value="200">xyz</option>
>没有选项被默认选择,即使我有ng-model =“object.setDefault”
问题1:
你生成的HTML是正常的。显然,这是Angular的一个功能,能够使用任何类型的对象作为选择的值。 Angular执行HTML选项值与ng模型中的值之间的映射。
另请参阅Umur在这个问题上的评论:How to set value property in angularjs ng-options?
问题二:
确保使用以下ng选项:
<select ng-model="object.item" ng-options="item.id as item.name for item in list" />
并将其放在您的控制器中以选择默认值:
object.item = 4