如何在多重选择下拉列表角JS设置默认值
问题描述:
我有一个多选下拉列表如下如何在多重选择下拉列表角JS设置默认值
<select id="year" multiple ng-model="type" ng-disabled="!type1" >
<option value="all" selected>all</option>
<option value='2012'>2012</option>
<option value='2013'>2013</option>
<option value='2014'>2014</option>
<option value='2015'>2015</option>
<option value='2016'>2016</option>
<option value='2017'>2017</option>
<option value='2018'>2018</option>
<option value='2019'>2019</option>
</select>
我想设置选项“全部”为默认值。为此,我在选项标签内写入了“selected”关键字,我想在默认情况下显示在我的下拉列表中,如上面代码中所示。但它不起作用。任何人都可以请帮助我如何设置默认值。
答
您可以在控制器中设置默认值。请记住,multiselect的值是一个数组,因此您必须将$scope.type
设置为一个数组。这是一个工作示例:
angular.module('app', [])
.controller('ctrl', function($scope) {
$scope.type = ["all"];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<select id="year" multiple ng-model="type">
<option value="all" selected>all</option>
<option value='2012'>2012</option>
<option value='2013'>2013</option>
<option value='2014'>2014</option>
<option value='2015'>2015</option>
<option value='2016'>2016</option>
<option value='2017'>2017</option>
<option value='2018'>2018</option>
<option value='2019'>2019</option>
</select>
<div>
{{type}}
</div>
</div>
答
该角的方法是使用ng-options
:
<select ng-model="type" ng-options="o for o in options"/>
如果选项是一个数组,在您的控制器设置:
$scope.options = [2012, 2013, 2014, 2015, 2016, ...];
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.options = [2011, 2012, 2013, 2014];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<select ng-options="o for o in options" ng-model="type">
<option value="">all</option>
</select>
<br>selected: {{type}}
</div>
看看ngOptions https://docs.angularjs.org/api/ng/directive/ngOptions使用角度的方式。 – fubbe
你可以发布你的控制器代码吗? –
你能否检查[我的回答](http://stackoverflow.com/a/42396482/4927984)是否解决了你的问题? – Mistalis