如何在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
中的版本相匹配的值。 我已经尝试versionID
和versionID
,我甚至尝试设置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"
你可以追加
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 ;});
- Angular $ scope。$ apply vs $ timeout作为一个安全的$ apply
- 使用Jquery Datatable和AngularJs
- Angularjs代码/命名约定
- localStorage vs sessionStorage vs cookie
- Angular.js ng-重复跨越多个元素
- 我如何在我的AngularJS指令testing中模拟点击事件?
- 那里已经有一个AngularJS的canvas绘图指令了吗?
- Angularjs – ng-cloak / ng-show元素闪烁
- 当我使用async / awaitfunction时,Angular UI路由器不处理parsing函数?