我有来自城市的id,应该在下拉列表中选择,但我无法预先选择它。我应该从指令中选择它还是有其他方式吗?
<select ng-model="cityId" ng-options="city.name for city in cities"></select>
答案 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