任何人都知道如何以角度清除ui选择框的选定值?
我想要select2的功能,你在selectbox中有一个小x。看起来它没有得到select2得到的允许清除方法。
答案 0 :(得分:100)
如果您使用的是select2主题,allow-clear
指令上有一个ui-select-match
选项可以为您执行此操作。您将在右侧显示x,您可以通过单击清除它。
https://github.com/angular-ui/ui-select/wiki/ui-select-match
快速举例:
<ui-select-match allow-clear="true" placeholder="Select or search a country in the list...">
<span>{{$select.selected.name}}</span>
</ui-select-match>
工作示例: http://plnkr.co/edit/DbbUE68QlNLjx97pBZ56?p=preview
目前使用bootstrap或selectize主题不起作用。
答案 1 :(得分:34)
显示选择时,可以添加一个小X按钮。
<ui-select-match placeholder="Select or search a country in the list...">
<span>{{$select.selected.name}}</span>
<button class="clear" ng-click="clear($event)">X</button>
</ui-select-match>
然后停止点击事件冒泡并触发打开事件。并通过覆盖所选模型来清除该字段。
$scope.clear = function($event) {
$event.stopPropagation();
$scope.country.selected = undefined;
};
这是plnkr。 http://plnkr.co/edit/qY7MbR
答案 2 :(得分:6)
如果您使用bootstrap,从设计角度来看,您还可以使用fa-remove图标。
此外,从可用性角度来看,您可能希望将删除图标对齐到左侧。
JS:
<ui-select-match placeholder="Select or find...">
<button class="clear-btn" ng-click="clear($event)">
<span class="fa fa-remove"></span>
</button>
<span class="clear-btn-offset">{{$select.selected}}</span>
</ui-select-match>
CSS:
.select2 .clear-btn {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
position: absolute;
left: -2px;
top: 1px;
}
.clear-btn-offset {
position: absolute;
left: 25px;
}
在指令代码:
$scope.clear = function($event) {
$event.stopPropagation();
// Replace the following line with the proper variable
$scope.country.selected = undefined;
};
答案 3 :(得分:1)
注意:如果我们使用了标记和tagging-label =“false”,那么允许清除功能就不起作用。
自定义清除功能
HTML代码
<ui-select-match placeholder=”Enter table…”>
<span>{{$select.selected.description || $select.search}}</span>
<a class=”btn btn-xs btn-link pull-right” ng-click=”clear($event, $select)”><i class=”glyphicon glyphicon-remove”></i></a>
</ui-select-match>
控制器操作代码
function clear($event, $select){
//stops click event bubbling
$event.stopPropagation();
//to allow empty field, in order to force a selection remove the following line
$select.selected = undefined;
//reset search query
$select.search = undefined;
//focus and open dropdown
$select.activate();
}