选项未选择angularjs选择

时间:2014-07-17 03:41:23

标签: javascript angularjs

您好我试图通过使用字符串值

在选择选项中选择一个数组项

这是我的HTML:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body ng-controller="AppCtrl" ng-app="myApp">
  <select ng-model="gender" ng-options="g.vl as g.lbl for g in genders track by g.vl">

  </select>
</body>
</html>

JS CODE:

var app = angular.module('myApp', []);

app.controller('AppCtrl', function($scope) {
  $scope.genders = [ {lbl: 'Male', vl: 'male'}, {lbl: 'Female', vl: 'female'}];

  $scope.gender = 'female';
});

当我删除轨道时,这工作正常,它选择初始值,但我需要使用轨道,所以我可以使用DB中的值(当使用轨道时,它选择空选项)..任何解决方法为了这? (不循环选项并比较初始值)。谢谢以下是代码http://jsbin.com/qixad/4/edit

的代码段

1 个答案:

答案 0 :(得分:0)

当您使用track by时,angular将使用track by expression中标识的属性来确定相同性。因此,要初始化性别,您需要做的就是使用定义了vl属性的对象初始化它:

$scope.gender = {vl:'female'}; //OR
$scope.gender = $scope.genders[1];

此外,ng-options表达式中的键必须是模型本身。

<select ng-model="gender" ng-options="g as g.lbl for g in genders track by g.vl">
</select>

JS Bin Demo