2017-01-05 3 views
2

<ボタン>のボタンをangular2でクリックすると、どのようにテキストを変更しますか?ボタンテキストを変更し、angular2のボタンイベントをクリックして無効にする方法

たとえば、ボタンのテキストを[保存]から[保存中]に変更し、無効にすることもできます。

私はAngularJS、jQuery、およびplain JSでこれを行う方法を知っていますが、私はAngular2でこれを行う方法についていくつかのアイデアを持っていますが、私はいくつかの古風なやり方でAngular2について言えば、

答えて

6
<button (click)="setSaving($event.target, 'saving')">save</button> 

、その後、あなたのコンポーネントで:

テンプレート:

setSaving(element, text){ 
    element.textContent = text; 
    element.disabled = true; 
} 

ます。また、ここでRenderer

+1

ありがとう、私のアイデアよりもクリーナー。 1つは、あなたはelement.attributes.disabled = trueでしたが、私のためにはうまくいかなかったと思いますが、element.disabled = trueが機能しました。私はそれを反映するためにあなたの投稿を編集しました。 – mkimmet

+0

編集を承認しました。どうも – Meir

1

を使用してプロパティを設定することができますが私のために働いた非同期呼び出しのための例です:

<button (click)="loadMore($event.target)">load more</button> 

コンポーネント(擬似コード):

export class MyComponent{ 

    button; 

    constructor(private _apiService: ApiService){} 

    ngOnInit() 
    { 
     this.load(); 
    } 

    load() 
    { 
     this._apiService 
      .getAsyncFrom('/sample/url') 
      .subscribe(data=> { 

       // do something with your data 

       // enable it 
       if(this.button) 
       { 
        this.button.textContent = 'load more'; 
        this.button.disabled=false; 
       } 
      }); 
    } 

    loadMore(element) 
    {  
     // assign to class 
     this.button = element; 

     //disable it 
     this.button.textContent = 'loading...'; 
     this.button.disabled=true; 

     this.load(); 
    } 
} 

基本的にクラスに要素を割り当て、あなたがそれを必要な場所にアクセスします。

関連する問題