我有<select>
ng-model
,其中一个选项是空格。当初始值是其他值时,angular选择正确的选项,但是当初始值是空格时,angular会添加空选项。
我可以用html重现它:
<select ng-model="a" ng-trim="false">
<option value=" ">Default</option>
</select>
<select ng-model="b">
<option value="x">Default</option>
</select>
和控制器如:
$scope.a = " ";
$scope.b = "x";
第一个选择将有一个空白选项,第二个选择将显示“默认”。添加ng-trim
似乎没有帮助,我从数据库中获取值,因此我无法轻易更改它们。
我可以通过https://code.angularjs.org/重现Angular 1.4.8,1.4.9(我正在使用)和1.5.8的问题。
我在这里有一个小提琴:https://jsfiddle.net/d1cj3kzb/4/。
如果<select>
初始化为空格,如何让ng-model
显示正确的选项?
答案 0 :(得分:1)
尝试在代码中声明一个具有默认值的变量,在本例中为空格,如:
$ scope.spaceChar =&#34; &#34 ;;
然后在你的选择中:
<select ng-model="a" ng-trim="false">
<option value="{{spaceChar}}">Default</option>
</select>
答案 1 :(得分:0)
你能试试吗?
将ng-trim应用于您的选项:
<div ng-app="app" ng-controller="MyCtrl">
<select ng-model="a" >
<option value=" " ng-trim="true">Default</option>
</select>
<select ng-model="b">
<option value="x">Default</option>
</select>
在绑定之前修剪变量。
angular.module("app", [])
.controller("MyCtrl",
function ($scope) {
$scope.a = (" ").trim();
$scope.b = "x";
}
);