【发布时间】:2016-06-26 05:51:25
【问题描述】:
我试图在单击按钮时禁用它。通过单击我正在调用一个函数,并且我想禁用使用该函数的按钮。如何使用 ElementRef 访问按钮的属性并禁用它?我对如何使用 ElementRef 不是很熟悉。 任何帮助将不胜感激!
【问题讨论】:
我试图在单击按钮时禁用它。通过单击我正在调用一个函数,并且我想禁用使用该函数的按钮。如何使用 ElementRef 访问按钮的属性并禁用它?我对如何使用 ElementRef 不是很熟悉。 任何帮助将不胜感激!
【问题讨论】:
如果您真的想通过 ElementRef 禁用按钮,可以使用 ViewChild 方法获取对按钮的引用,然后使用其 nativeElement 属性将按钮设置为禁用。
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>My First Angular 2 App</h1>
<button #myButton (click)="onClicked()">Click me!</button>`
})
export class AppComponent {
@ViewChild('myButton') button;
onClicked() {
this.button.nativeElement.disabled = true;
}
}
但是,Angular2 recommends using ElementRef's as a last resort。通过property binding 可以实现您想要的相同功能。
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>My First Angular 2 App</h1>
<button [disabled]="isDisabled" (click)="onClicked()">Click me!</button>`
})
export class AppComponent {
private isDisabled = false;
onClicked() {
this.isDisabled = true;
}
}
【讨论】:
<button #btn (click)="btn.disabled = true">Click me!</button>
[disabled]="!form.valid || isDisabled"。