我是一个新的AngularJS框架。我有一些关于在AngularJS中使用<select>
标签的问题。
首先,每当我在<select>
标签中输入选项的第一个值时,它会在下拉列表中显示一个额外的空白选项,然后,当我在下拉列表中选择任何选项时,它就会消失。
其次,每当我保持任何选项为空,那么它的行为正常。
为什么会这样?
下面是代码:
<html>
<head>
<title>AngularJS Binding</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"></script>
</head>
<body ng-app="app">
<div>
Search 1: <select ng-model="optval1" >
<option value="any">Any</option>
<option value="name">Name</option>
<option value="city" selected>City</option>
</select>
<br>
Selected Value={{optval1}}<br><br>
Search 2: <select ng-model="optval2" >
<option value="">Any</option>
<option value="Name">Name</option>
<option value="City">City</option>
> </select>
<br>
Selected Value={{optval2}}
</div>
</body>
</html>
3条答案
按热度按时间9rygscc11#
可以使用
ng-init
加载初始值。如果不想使用初始值则使用
ng-init.
请使用ng-show/ng-if。
您还可以将样式元素硬编码为第一个下拉列表值。
例如:
执行与ng-if/ng-show相同的操作。
希望这能解决你的问题,也能提供信息。
pdtvr36n2#
这是因为你向框架提供了不连贯、矛盾的信息。select被绑定到
optval
,所以是optval
的值告诉Angular必须选择哪个选项(你选择的属性是完全无用的,而且是矛盾的)。1.你的意思是
optval1
的唯一可能值是"any"
,"name"
和"city"
。1.但是
optval
的值不是这些值中的任何一个。所以AngularJS不得不做一些补偿,它增加了一个空白选项。
wqlqzqxt3#
请查找以下代码