Angular 已选择空白选项
Angular blank option selected
我正在用头撞墙。
我有一个对象数组,将用于填充 select 下拉列表:
CardCount = [{"ClientId": "0010", "Description": "0010 (206 Members)"}, {"ClientId": "0051", "Description": "0051 (1 Member)"}, ........]
当我尝试使用 ng-options 时,选项的值设置为索引,而不是所需的 ClientId。为了让每个选项中的值成为 ClientId,我必须在选项中使用 ng-repeat。这是我的 html:
<select ng-model="CurrentClient">
<option ng-repeat="item in CardCount" value="{{item.ClientId}}">{{item.Description}}</option>
</select>
最初,一切正常,select 和选项生成正确,第一个选项正确。现在,当在页面上的其他地方单击某个按钮时,有必要重新创建此 select 和具有类似对象的较小数组的选项。但是,这样做会创建一个值为“? string:0010 ?”的空白选项。这是 selected 的选项。同样,我不能使用 ng-options 来纠正这个问题,因为这样做没有正确设置选项标签中的 value 属性。所以,我将其添加到选项标签中:
<option ng-repeat="item in CardCount" value="{{item.ClientId}}" ng-selected="CurrentClient == item.ClientId">{{item.Description}}</option>
现在,这确实将正确的选项标记为 selected。但是,下拉列表仍然显示空白选项。这是呈现的 html:
<select ng-model="CurrentClient">
<option value="? string:0010 ?"></option>
<option value="0010" selected="selected">0010 (206 Members)</option>
</select>
如您所见,它将正确的选项设置为 selected。但是,它将其设置为 selected="selected"
,而不仅仅是 selected
。当我检查元素并将 selected="selected"
更改为 selected
(删除等号及其后的所有内容)时,下拉菜单会正确显示正确的 selected 选项。
同样,最初 select 和选项效果很好。该问题似乎仅在创建 select 的数组发生更改后才会发生。我怎样才能在更改数组后使 select 和选项正常工作,而不显示第一个空白选项?
谢谢!
ng-options 绝对是正确的选择:
<select ng-model="selected.ClientId" ng-options="it.ClientId as it.Description for it in clientList">
<option value="">-</option>
</select>
将您的选项元素更改为默认设置值。
<option ng-repeat="item in CardCount track by item.ClientId"
value="{{item.ClientId}}">{{item.Description}}</option>
希望对您有所帮助。谢谢
我正在用头撞墙。
我有一个对象数组,将用于填充 select 下拉列表:
CardCount = [{"ClientId": "0010", "Description": "0010 (206 Members)"}, {"ClientId": "0051", "Description": "0051 (1 Member)"}, ........]
当我尝试使用 ng-options 时,选项的值设置为索引,而不是所需的 ClientId。为了让每个选项中的值成为 ClientId,我必须在选项中使用 ng-repeat。这是我的 html:
<select ng-model="CurrentClient">
<option ng-repeat="item in CardCount" value="{{item.ClientId}}">{{item.Description}}</option>
</select>
最初,一切正常,select 和选项生成正确,第一个选项正确。现在,当在页面上的其他地方单击某个按钮时,有必要重新创建此 select 和具有类似对象的较小数组的选项。但是,这样做会创建一个值为“? string:0010 ?”的空白选项。这是 selected 的选项。同样,我不能使用 ng-options 来纠正这个问题,因为这样做没有正确设置选项标签中的 value 属性。所以,我将其添加到选项标签中:
<option ng-repeat="item in CardCount" value="{{item.ClientId}}" ng-selected="CurrentClient == item.ClientId">{{item.Description}}</option>
现在,这确实将正确的选项标记为 selected。但是,下拉列表仍然显示空白选项。这是呈现的 html:
<select ng-model="CurrentClient">
<option value="? string:0010 ?"></option>
<option value="0010" selected="selected">0010 (206 Members)</option>
</select>
如您所见,它将正确的选项设置为 selected。但是,它将其设置为 selected="selected"
,而不仅仅是 selected
。当我检查元素并将 selected="selected"
更改为 selected
(删除等号及其后的所有内容)时,下拉菜单会正确显示正确的 selected 选项。
同样,最初 select 和选项效果很好。该问题似乎仅在创建 select 的数组发生更改后才会发生。我怎样才能在更改数组后使 select 和选项正常工作,而不显示第一个空白选项?
谢谢!
ng-options 绝对是正确的选择:
<select ng-model="selected.ClientId" ng-options="it.ClientId as it.Description for it in clientList">
<option value="">-</option>
</select>
将您的选项元素更改为默认设置值。
<option ng-repeat="item in CardCount track by item.ClientId"
value="{{item.ClientId}}">{{item.Description}}</option>
希望对您有所帮助。谢谢