通过抓取ElementRef禁用按钮:angular2

Aig*_*guo 11 angular2-template angular

我正在尝试在单击时禁用按钮.通过单击我正在调用一个函数,我想要使用该函数禁用该按钮.如何使用ElementRef访问按钮的属性并禁用它?我对如何使用ElementRef不是很熟悉.任何帮助将不胜感激!

Mic*_*ael 17

如果你真的想通过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;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,Angular2建议使用ElementRef作为最后的手段.您可以通过属性绑定实现所需的相同功能.

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;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 再举一个例子:`&lt;button #btn (click)="btn.disabled = true"&gt;点击我!&lt;/button&gt;` (2认同)