一键清除多select (angular primeng turbotable)

Clear multi-select with a button (angular primeng turbotable)

是否可以通过按钮远程清除一个多select(或多个多select)?我正在使用带有 turbo table

的 primeng multi-select

这个问题我见过几次,但没有 select 编辑的答案。

下面是我的多select:

<span *ngIf="col.field == 'Product'">
  <p-multiSelect [options]="getUniques(col.field)" 
                 (onChange)="dt.filter($event.value, col.field, 'in')">
  </p-multiSelect>
</span>

这是我的按钮:

<p-button label="Clear All" 
          styleClass="ui-button-primary"
          (click)="onResetAll($event, dt)">
 </p-button>

这是方法,我尝试重置值,但似乎没有重置:

onResetAll(event, dt) {
    dt.filter('', 'Product', 'contains');
}

下方为多选多选

首先设置视图子选择器#cmp

<p-multiSelect #cmp [options]="cars" appendTo="body"
                 (onChange)="table.filter($event.value, 'brand', 'in')">
  </p-multiSelect>

在后面的代码中声明组件集

@ViewChildren('cmp') components: QueryList<MultiSelect>;

并更新您的按钮点击事件

onResetAll(event, dt) {
    this.components['_results'].forEach(ds => {
      ds.value = null;
      ds.updateLabel();
    });
    dt.filter('', 'brand', 'contains');
  }

演示 here

最简单的解决方案是:

this.form.get("formcontrolname").setValue([]);