我有以下HTML:
<span>SubTopic {{ modal.option.sSubTopic }}</span>
<select data-ng-model="modal.option.sSubTopic"
data-ng-options="item.id as item.name for item in modal.option.subTopics">
</select>
在我的控制器中
$http.get(url, { cache: us.oneDayCache })
.success(function (data) {
$scope.modal.option.subTopics = data;
$scope.modal.option.sSubTopic = "2";
})
获取后,{{}}值设置为2,但未选中我的选择的第二项。
我这样做的方式有问题吗?
答案 0 :(得分:1)
您正在id
中将字段的值指定为item.id as
项目的ngOptions
。模型值需要与您想要选择的data
id
的值相匹配。如果你想要第二个对象,它将是data[1].id
$http.get(url, { cache: us.oneDayCache })
.success(function (data) {
$scope.modal.option.subTopics = data;
$scope.modal.option.sSubTopic = data[1].id;
});
答案 1 :(得分:0)
data-ng-model包含将存储所选值的模型。在您的情况下,这意味着您将选定的值存储在2中。这看起来并不正确。也许你可以尝试类似的东西:
<select ng-model="selectedItem" ng-options="item.id as item.name for item in modal.options.subTopics"></select>
<pre>{{selectedItem}}</pre>
$ scope.selectedItem包含您选择的项目。现在,您要选择数据对象中的第二个项目。您可以在控制器中执行此操作:
$http.get(url, { cache: us.oneDayCache })
.success(function (data) {
$scope.modal.option.subTopics = data;
$scope.selectedItem = data[1];
})
无法在这里测试它,但它应该可以工作。