繁体   English   中英

无法设置默认选择 <select>角度js中的元素

[英]Not able to set default selection for <select> element in angular js

为了说明问题,我创建了两个HTML代码段进行比较。 第一个将预期的选择元素的默认选择设置为“一个”。

 (function(angular) { angular.module('m', []) .run(function($rootScope) { $rootScope.x = { val: "1" }; }); })(window.angular); 
 <html> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script> </head> <body ng-app="m"> <select ng-model="x.val"> <option value="0">Zero</option> <option value="1">One</option> <option value="2">Two</option> </select> {{ x }} </body> </html> 

我不想将所有选项硬编码到HTML中,因为它们将来可能会更改。 我正在尝试使用ng-repeat,但是看到默认选择始终设置为“零”。 有人可以解释为什么它不起作用以及如何解决它吗?

 (function(angular) { angular.module('m', []) .run(function($rootScope) { $rootScope.nums = ["Zero", "One", "Two"]; $rootScope.x = { val: "1" }; }); })(window.angular); 
 <html> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script> </head> <body ng-app="m"> <select ng-model="x.val"> <option ng-repeat="num in nums" value="{{ $index }}">{{ num }}</option> </select> {{ x }} </body> </html> 

使用正确的ngOptions语法应该可以解决此问题:

 (function(angular) { angular.module('m', []) .run(function($rootScope) { $rootScope.nums = ["Zero", "One", "Two"]; $rootScope.x = { val: "One" }; }); })(window.angular); 
 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script> <div ng-app="m"> <select ng-model="x.val" ng-options="num as num for num in nums"></select><br /> selected value: {{ x.val }} </div> 

这是另一种解决方案。

 (function(angular) { angular.module('m', []) .run(function($rootScope) { $rootScope.nums = ["Zero", "One", "Two"]; $rootScope.x = $rootScope.nums[1]; // Index position of One }); })(window.angular); 
 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script> <div ng-app="m"> <select ng-model="x" ng-options="num as num for num in nums"></select><br /> selected value: {{ x }} </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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