以角度2重置输入值

Rus*_*312 16 angular

我输入输入字段如下:

<input mdInput placeholder="Name" #filterName name="filterName" >
Run Code Online (Sandbox Code Playgroud)

我想清除点击清除按钮的价值:

<button (click)="clearFilters()">Clear</button>
Run Code Online (Sandbox Code Playgroud)

请告诉我上面的错误,因为它不适合我.

这里的jsfiddle https://jsfiddle.net/8fw8uq3x/

Rah*_*ngh 30

你可以做这样的事情

    <input  placeholder="Name" #filterName name="filterName" />
    <button (click) = "filterName.value = ''">Click</button>
Run Code Online (Sandbox Code Playgroud)

要么

模板

<input mdInput placeholder="Name" [(ngModel)]="filterName" name="filterName" >
<button (click) = "clear()'">Click</button>
Run Code Online (Sandbox Code Playgroud)

在组件中

filterName:string;
clear(){
this.filterName = '';
}
Run Code Online (Sandbox Code Playgroud)

更新

如果是表格

清除表单以及错误状态(脏,prestine等)的最简单,最干净的方法

this.form_name.reset();
Run Code Online (Sandbox Code Playgroud)

有关表格的更多信息,请阅读此处

https://angular.io/docs/ts/latest/guide/forms.html

PS:正如您提出的问题,您的问题代码中没有使用任何表单,您使用的是使用ngModel而不是formControl的简单的两天数据绑定.

form.reset()方法仅适用于formControls重置调用

一个提示如何工作链接的 plunker .


Sam*_*ham 10

我知道这是一个旧线程,但我只是偶然发现。

所以继承人我会怎么做,使用输入字段上的本地模板变量,您可以设置输入的值,如下所示

<input mdInput placeholder="Name" #filterName name="filterName" >

@ViewChild() input: ElementRef

public clear() {
    this.input.NativeElement.value = '';
}
Run Code Online (Sandbox Code Playgroud)

很确定这不会将表单设置回原始状态,但您可以使用该markAsPristine()功能在同一功能中重置它


Vip*_*pin 6

使用 @ViewChild重置控制。

模板:

<input mdInput placeholder="Name" #filterName name="filterName" >
Run Code Online (Sandbox Code Playgroud)

在代码中:

@ViewChild('filterName') redel:ElementRef;
Run Code Online (Sandbox Code Playgroud)

然后你可以访问你的控件

this.redel= "";
Run Code Online (Sandbox Code Playgroud)