我有来自应该在下拉列表中选择的城市的 ID,但我无法预先选择它。我应该从指令中选择它还是有其他方法?
<select ng-model="cityId" ng-options="city.name for city in cities"></select>
我有来自应该在下拉列表中选择的城市的 ID,但我无法预先选择它。我应该从指令中选择它还是有其他方法?
<select ng-model="cityId" ng-options="city.name for city in cities"></select>
将您的 ng-options 编辑为:
city.id as city.name for city in cities
如果您获取城市并且不知道 ID,您可以在 javascript 成功函数(返回城市)中说:
$scope.cityId = the_cities[0].ID
将第一个设置为选中 Else 你可以说:
$scope.cityId = 1; //or anything that exists
您需要为此使用select as部分,前提id是您将执行的城市对象的相应属性:
ng-options="city.id as city.name for city in cities"
否则,您需要提供与 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 的选项的 value 属性(与select as保留带有索引的内部映射不同)。这在进行表单发布时很有帮助。但是你应该小心不要把它混在一起,select as因为两者都是为了不同的目的而实现的相互冲突。