简体   繁体   English

如何以角度重置ng-select

[英]How to reset ng-select in angular

I want to reset ng-select when I click on clear button my code is as below:我想在单击清除按钮时重置 ng-select 我的代码如下:

<ng-select (change)="setFilter('','')" 
           [items]="eventType"
           bindLabel="name"
           bindValue="id"
           placeholder="Select Event Type"
           [(ngModel)]="event_type" id="eventType">
</ng-select>
<button class="acq-btn acq-btn-default"(click)="clearFilter()">Clear</button>

Function which I've created is as below:我创建的函数如下:

eventType = [
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = '';
    this.setFilter('','');
}

Using select I'm filtering the data.使用 select 我正在过滤数据。 Filtering is working fine.过滤工作正常。 Clear button is also fine just the UI is showing cross sign like below:清除按钮也很好,只是 UI 显示如下十字符号:

在此处输入图片说明

Can you help me in this issue?你能帮我解决这个问题吗?

As you are using two way binding [(ngModel)] :当您使用两种方式绑定[(ngModel)]

<ng-select 
           (change)="setFilter('','')" 
           [items]="eventType"
           bindLabel="name"
           bindValue="id"
           placeholder="Select Event Type"
           [(ngModel)]="event_type" 
           id="eventType">
</ng-select>

In your component it is necessary to add empty value and set [(ngModel)] to your desired value in clearFilter() method:在您的组件中,有必要添加空值并在[(ngModel)] clearFilter()方法中将[(ngModel)]为您想要的值:

event_type: any;

eventType = [
    {id: 'empty', name: ''},
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = this.eventType[0];
}

If, in example, you can set your drop-down to default 'create', you can do it like this:例如,如果您可以将下拉列表设置为默认的“创建”,您可以这样做:

eventType = [
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = 'create';
    this.setFilter('','');
}

Alternatively you can give a blank option:或者,您可以提供一个空白选项:

eventType = [
    {id: '', name: ''},
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = '';
    this.setFilter('','');
}

Using the ngModel and making the variable variablename = null;使用 ngModel 并使变量variablename = null; will make your work easy.将使您的工作变得轻松。 Thank me later晚点再谢我

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

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