繁体   English   中英

ng选择的不起作用angularjs

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM