AngularJs,ng-options和默认选项显示为空白

时间:2014-12-17 14:21:52

标签: angularjs ng-options

我有一个ng-options,一个数组和一个0的默认ng-options-model,即数组中的第一个元素。为什么数组中的第一个名字显示在下拉列表中(它只是空白的)?

请参阅plunk

我有这个HTML:

<form>
  <select ng-options="index as contact.name for (index,contact) in contacts" ng-model="selectedContact"></select>
</form>
Selected contact array index (default 0): {{selectedContact}}

这个控制器:

app.controller('MyCtrl', ['$scope', function ($scope) {
  $scope.contacts = [
    {email: "me@example.com", name: "Mini Me"},
    {email: "you@example.com", name: "Maxi You"}
  ];
  $scope.selectedContact = 0;
}]);

2 个答案:

答案 0 :(得分:1)

您的ng-options语法有点不对,当您实际拥有一个对象数组时,您正在使用迭代对象属性的语法:

ng-options="contact as contact.name for contact in contacts"

然后设置数组的索引以选择第一个:

$scope.selectedContact = $scope.contacts[0];

答案 1 :(得分:0)

好的,我自己找到了解决方案。 ng-repeat将索引作为字符串(所以selectedContact是一个字符串),但我的控制器使用了一个数字。当我将控制器更改为:

$scope.selectedContact = "0";

然后它完美无缺。