我正在将PrimeNG p-table
与带有input
和p-dropdown
过滤器的标题行一起使用,并且需要清除input
和< / strong>调用表上的p-dropdown
方法时的.reset()
。
就像其他人指出的那样(https://stackoverflow.com/a/51402834/5764320),您可以在[value]
元素上使用input
,但是似乎没有清除任何非{{1 }}过滤值。
如何重置input
(和其他非p-dropdown
过滤器类型)的过滤器值?
答案 0 :(得分:1)
我想出了一种简单,干净的方法,您可以使用input
完成此操作。
ng-template
放入<tr>
ng-template
和ng-template
将[ngTemplateOutlet]
添加到HTML两次,并分配一个值进行切换,以便一个模板用于*ngIf
,另一个用于{ {1}}。这可以“清除”过滤器,因为Angular在切换时会从DOM中完全添加和删除模板的HTML,这意味着不再使用以前使用过的任何值。
这假设您正在使用true
,以便可以通过单击按钮来传递false
。
注意:将与<p-table #dt ...>
相关的部分和属性保留下来以保持其清洁。
dt
p-table
答案 1 :(得分:0)
我只是通过引用ts组件中的来手动清除它们。
模板
<p-dropdown #myDropDown (onChange)="dt.filter($event.value, col.field, 'equals')">
</p-dropdown>
TypeScript
...
@ViewChild("myTable", {static: false}) myTable: Table
@ViewChild("myDropDown", {static: false}) myDropDown: Dropdown
onResetTable() {
this.myTable.clear()
this.myDropDown.clear(null);
}
...