单击按钮时从同一组件中清除数据

Posted

技术标签:

【中文标题】单击按钮时从同一组件中清除数据【英文标题】:Clear data from the same component when clicking the button 【发布时间】:2020-05-08 00:08:21 【问题描述】:

在一个组件中,我两次使用同一个库(非必要)。当您提交表单时,只清理了一个组件,而实际上这两个组件都应该被清理。

我不知道为什么只清理一个组件。

谁能找出问题所在,或者我如何删除这两个组件中的数据?

DEMO

代码

 @ViewChild(DxhtmlEditorComponent, static: false) dxHtmlEditor;


 clearAll()  
   this.dxHtmlEditor.instance.reset();
   alert("clear works!")
 

html

<dx-html-editor>
    <dxi-mention
        valueExpr="text" 
        displayExpr="text"
        [dataSource]="employees"
    ></dxi-mention>
</dx-html-editor>



<dx-html-editor>
    <dxi-mention
        valueExpr="id" 
        displayExpr="text"
        [dataSource]="users"
    ></dxi-mention>
</dx-html-editor>

【问题讨论】:

【参考方案1】:

您目前仅获得一个带有ViewChild 的实例。将其更改为 ViewChildren 并循环遍历它们:

import  Component, ViewChildren, QueryList  from "@angular/core";
import  DxHtmlEditorComponent  from "devextreme-angular";

@Component(
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
)
export class AppComponent 
  @ViewChildren(DxHtmlEditorComponent) editors: QueryList<DxHtmlEditorComponent>;

  clearAll() 
    this.editors.forEach(editor => editor.instance.reset())
  

Blitz

【讨论】:

【参考方案2】:

您需要使用ViewChildren,因为ViewChild 仅引用单个实例(第一次出现)。

请注意,list 将是 QueryList of DxHtmlEditorComponent

更多答案可以在这里找到:

Access multiple viewchildren using @viewchild

【讨论】:

以上是关于单击按钮时从同一组件中清除数据的主要内容,如果未能解决你的问题,请参考以下文章

在按钮上单击清除显示的文本并在 VueJs 中调用另一个函数

如何在按钮单击时将新行添加到数据库中的jTable而不清除现有行

单击保存按钮后如何在用户窗体中添加依赖于另一个组合框的excel vba组合框而不影响清除数据功能

在 PyQt 中清除 TableView

过滤器不响应我闪亮的应用程序中的应用和清除按钮

在切换视图时清除文本字段和文本视图视图的数据