如何在ng-option中设置预选值?

时间:2015-05-28 15:02:23

标签: html angularjs angularjs-ng-options

我有来自城市的id,应该在下拉列表中选择,但我无法预先选择它。我应该从指令中选择它还是有其他方式吗?

<select  ng-model="cityId" ng-options="city.name for city in cities"></select>

2 个答案:

答案 0 :(得分:2)

您需要使用select as部分,前提是id是您要执行的城市对象的相应属性:

ng-options="city.id as city.name for city in cities"

否则,您需要提供相同的对象引用(数组中的city对象)作为ng-model(如果不使用track-by)。

使用track-by时,您会这样做:

ng-options="city.name for city in cities track by city.id"

并将模型设置为:

$scope.cityId = {id:'CITY1'};

当使用track by时,您不需要担心对象引用,它实际上将具有反映精确id的options的value属性(与select as不同,后者保留带索引的内部映射)。这在做表格帖子时很有用。但是你应该注意不要将它与select as混合使用,因为它们都是为了不同的目的,并且实现相互冲突。

答案 1 :(得分:2)

将ng-options编辑为:

city.id as city.name for city in cities

如果您提取城市但不知道ID 你可以在你的javascript成功函数(返回城市)中说:

$scope.cityId = the_cities[0].ID

将第一个设置为已选中 否则你可以说:

$scope.cityId = 1; //or anything that exists