如何在angularjs中设置select框的默认值

我有一个窗体用于编辑对象,我不能在select框中select一个值。

我有一个代表要编辑的json数组,如下所示:

$scope.item = [{ "objectID": "76", "versionID": "0", "versionName": "CURRENT", "objectName": "xyz", }] 

现在我同时从另一个json数组中填充select框,如下所示:

 $scope.versions = [{ "id": "0", "description": "CURRENT", "name": "CURRENT" }, { "id": "114", "description": "description of Version 2", "name": "version2" }, { "id": "126", "description": "description of Version 3", "name": "version3" }, { "id": "149", "description": "description of Version 4", "name": "version4" }] 

在我的网页里面我正在创buildselect框如下:

 Version:<select ng-model="item.versionID" ng-selected="item.versionID" ng-options="version.name for version in versions" required> 

select框为我填充,但它应该select与item中的版本相匹配的值。 我已经尝试versionIDversionID ,我甚至尝试设置ng-selected="0" ,这甚至不工作。

我已经在这里看到了,Angularjs网站和谷歌search,经历了无数的教程,但仍然有这个问题。 我似乎无法看到什么问题是如此的任何帮助不胜感激

JSFiddle添加

在这里添加了一个JsFiddle

你可以像这样简单的使用ng-init

 <select ng-init="somethingHere = options[0]" ng-model="somethingHere" ng-options="option.name for option in options"></select> 

它没有设置默认值,因为你的模型没有绑定到id或name属性,它绑定到每个version对象。 尝试设置versionID到其中一个对象,它应该工作,即$scope.item.versionID = $scope.versions[2];

如果你想通过id属性设置,那么你需要添加select as语法:

ng-options="version.id as version.name for version in versions"

http://jsfiddle.net/LrhAQ/1/

你可以追加

track by version.id

到你的ng选项。

search并尝试多个非工作选项以使我的select默认选项工作。 我find一个干净的解决scheme: http : //www.undefinednull.com/2014/08/11/a-brief-walk-through-of-the-op-options-in-angularjs/

 <select class="ajg-stereo-fader-input-name ajg-select-left" ng-options="option.name for option in selectOptions" ng-model="inputLeft"></select> <select class="ajg-stereo-fader-input-name ajg-select-right" ng-options="option.name for option in selectOptions" ng-model="inputRight"></select> scope.inputLeft = scope.selectOptions[0]; scope.inputRight = scope.selectOptions[1]; 

如果您甚至不想将ng-model初始化为静态值,并且每个值都是由数据库驱动的,则可以通过以下方式完成。 Angular比较评估值并填充下拉列表。

这里下面modelData.unitId是从数据库中检索出来的,并与从db-

  <select id="uomList" ng-init="modelData.unitId" ng-model="modelData.unitId" ng-options="unitOfMeasurement.id as unitOfMeasurement.unitName for unitOfMeasurement in unitOfMeasurements"> 

根据文档select ,下面的一段代码为我工作。

 <div ng-controller="ExampleController"> <form name="myForm"> <label for="mySelect">Make a choice:</label> <select name="mySelect" id="mySelect" ng-options="option.name for option in data.availableOptions track by option.id" ng-model="data.selectedOption"></select> </form> <hr> <tt>option = {{data.selectedOption}}</tt><br/> </div> 
  <select ng-model="selectedCar" ><option ng-repeat="car in cars " value="{{car.model}}">{{car.model}}</option></select> <script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.cars = [{model : "Ford Mustang", color : "red"}, {model : "Fiat 500", color : "white"},{model : "Volvo XC90", color : "black"}]; $scope.selectedCar=$scope.cars[0].model ;});