Angular ng-options返回索引而不是对象值

时间:2016-11-01 21:48:18

标签: javascript angularjs

以下是我的选项

 <select ng-init="vm.tutors = vm.tutors || 0" ng-model="vm.tutors"    ng-options="tutors.fullname as tutor  for (tutor, fullname) in vm.tutors" class="form-control"></select>

以下是我的对象

vm.tutors  [对象{fullname =“NAME”},对象{fullname =“NAME2”}}]

我持续获取索引而不是实际值

的原因是什么

1 个答案:

答案 0 :(得分:3)

获取索引的原因是因为您有一些语法/概念问题。

你的代码看起来需要一些爱,所以这里有一个正确的方法来做到这一点:

控制器:

$scope.vm.tutors = [{fullname: "NAME"}, {fullname: "NAME2"}];
$scope.vm.selectedTutor = ""; // you can assign a value if you would like to have an option preselected.

HTML:     //在此示例中,tutor.fullname是select选项的Label和Value。

<select ng-model="vm.selectedTutor" ng-options="tutor.fullname for tutor in vm.tutors" ></select>

现在,当您选择一个选项时,该值将被分配给$ scope.vm.selectedTutor,它不会破坏您的数组。

或者,您可以使用选择选项设置键值对关系,如下所示:

控制器:

$scope.vm.tutors = [{fullname: "NAME", id: "0"}, {fullname: "NAME2", id:"1"}];

HTML:     //在此示例中,tutor.id是Value,tutor.fullname是select选项的标签

<select ng-model="vm.selectedTutor" ng-options="tutor.id as tutor.fullname for tutor in vm.tutors" ></select>

我希望这可以帮助您更好地理解这里发生的事情,HERE is a link to the AngularJS documentation.