2016-09-11 5 views
4

クリック時にボタンのスタイルを更新しようとすると、多くの問題が発生しています。角2ボタンのスタイルを変更します。

まず、ここではオリジナルのマークアップです:"btn btn-remove"

  • 変更に

    1. 変更"btn btn-add"からクラス:ボタンをクリックすると

      <button class="btn btn-add" (click)="handleButtonClick(id)"> 
          Add<i class="fa fa-plus-circle"></i> 
      </button> 
      

      、私がしようとしています<i class="fa fa-plus-circle"><i class="fa fa-minus-circle">

    これをどのように角度2方向に行うことができますか?今、私はブール値を追加してそれを反転し、その値に基づいて異なるテンプレートを表示します。しかし、これを処理する方法があるはずです。ドキュメントでは、複数のクラスのスペースで区切られた文字列を使用することができますが、その方法はわかりません。

  • +0

    あなたは、少なくとも何かをしようとしたことがありますか?またはドキュメントを見ましたか? – lexith

    +0

    ええ私はhttps://angular.io/docs/ts/latest/api/common/index/NgClass-directive.htmlのドキュメントを見ました。スペースで区切られた複数のクラスを使用することができますが、私はそれを動作させることができませんでした:( – user1354934

    答えて

    9

    あなたがngClassをしようとしたが、それとのトラブルがあったことを、次のように述べています

    ディレクティブは、キーとブール値としてクラス名を持つオブジェクトを期待式を値として返します。式がtrueの場合はクラスが追加され、削除されない場合はクラスが追加されます。

    あなたは、おそらくこのような何かを行うよりも、例えば、ボタンがクラスbtnを持っており、ブール値に応じてbtn-addまたはbtn-removeのいずれかを持っている必要があります。

    <button class="btn" [ngClass]="{ 'btn-add': isAddButton, 'btn-remove': !isAddButton }"> 
    </button> 
    

    希望これは、その後、ngClassのご理解に役立ちますあなたの他のユースケースでそれを使うのは問題ではありません。

    +1

    ありがとう!しかし、私の問題は、ボタンが写真を表示する順不同リストの一部だということです。 (私は1つの写真を追加すると、すべてのためにスタイルが変更されるので、私は本当にangualr 2で混乱しています。 – user1354934

    +0

    これは別の質問です:) :)サンプルコードなし答えが得難いです。例えば、あなたが 'ngFor'について話している場合など、もちろん可能です:コンポーネントのプロパティを使う代わりに、あなたの写真オブジェクトのプロパティを使って、ボタンがどのクラス – lexith

    +0

    thx。追加をクリックするとフラグとしてreduxに追加されると思います。追加= true – user1354934

    2

    あなたはこのコードを試すことができます:あなたのコメントで

    <button class="btn" [ngClass]="{'btn-add': !clicked, 'btn-remove': clicked}" (click)="clicked = true"> 
        Add<i class="fa" [ngClass]="{'fa-plus-circle': !clicked, 'fa-minus-circle': clicked}"></i> 
    </button> 
    
    0

    すぎてボタンのテキストを切り替えるには:

    enter image description here

    <button class="btn" [ngClass]="{'btn-add': !clicked, 'btn-remove': clicked}" (click)="clicked = !clicked"> 
        {{clicked ? 'Remove' : 'Add'}} 
        <i class="fa" [ngClass]="{'fa-plus-circle': !clicked, 'fa-minus-circle': clicked}"></i> 
    </button> 
    
    関連する問題