[英]ng-selected not working angularjs
<select ng-model="dayOfMonth">
<option value="" label="Select day"></option>
<option ng-selected="parseInt(dayOfMonth) === parseInt(day+1)" ng-repeat="day in getTotalDays() track by $index" value="{{$index+1}}>{{$index+1 | ordinal}} of the month</option>
</select>
我有一个ng型dayOfMonth
其值我变成12,但是当我尝试根据dayOfMonth
选择默认值时,它总是选择所有最后一个索引。
下面是我的getTotalDays
函数,该函数仅返回28个项目的数组。
$scope.getTotalDays = function(){
return new Array(28);
}
替换为:
<select ng-model="dayOfMonth">
<option value="" label="Select day"></option>
<option ng-selected="parseInt(dayOfMonth) === parseInt(day+1)" ng-repeat="day in getTotalDays() track by $index" value="{{$index+1}}>{{$index+1 | ordinal}} of the month</option>
</select>
带有ng-options
https://docs.angularjs.org/api/ng/directive/ngOptions
像这样:
angular.module('myApp', []) .controller('myController', ['$scope', function($scope) { $scope.getTotalDays = [1, 2, 3, 5]; } ]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp"> <div ng-controller="myController"> <select ng-model="dayOfMonth" ng-options="day as (day + ' of the month') for day in getTotalDays"> <option value="" label="Select day"></option> </select> </div> </div>
您不需要使用ng-selected
因为<select>
的正确选项将由ng-model
设置。 您可能遇到的一个问题是,如果将dayOfMonth = 12
设置dayOfMonth = 12
因为它是一个int,但选项值都是字符串。 下面的代码段有效,尽管我必须删除| ordinal
| ordinal
过滤器,因为您未提供该代码。
angular.module('app', []) .controller('ctrl', function($scope) { $scope.dayOfMonth = '12'; $scope.getTotalDays = function() { return new Array(28); }; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script> <div ng-app="app" ng-controller="ctrl"> <select ng-model="dayOfMonth"> <option value="" label="Select day"></option> <option ng-repeat="day in getTotalDays() track by $index" value="{{$index+1}}">{{$index+1}} of the month</option> </select> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.