2016-06-26 4 views
5

ボタンをクリックすると無効にしようとしています。クリックすると、関数が呼び出されています。その関数を使用してボタンを無効にします。 ElementRefでボタンのプロパティにアクセスして無効にするにはどうすればいいですか?私はElementRefの使い方にあまり慣れていません。 ご協力いただければ幸いです!ElementRefをつかんでボタンを無効にする:angular2

答えて

6

実際に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; 
    } 
} 
+1

もう1つの例があります: ' ' – yurzui

+0

@Michael、返信いただきありがとうございます。プロパティバインドのアプローチでは、既に[disabled] = "!form.valid"( '[disabled]'は既にフォームの有効性をチェックしているので、別の変数を[disabled] – Aiguo

+0

論理AND/OR演算子を使用して複数の条件を結合することができます: '[disabled] ="!disabled || isDisabled "'。 – Michael

関連する問題