填充后如何从选择列表中选择项目?

时间:2014-01-28 16:12:40

标签: angularjs

我有以下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,但未选中我的选择的第二项。

我这样做的方式有问题吗?

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;
    });

演示:http://jsfiddle.net/TheSharpieOne/gteX9/2/

答案 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];
})

无法在这里测试它,但它应该可以工作。