2016-05-07 4 views
0

現在、私はクリックが行われたときにそのボタンの中にHTMLを表示するボタンを持っています(基本的にはカートに追加ボタンユーザーがそれをクリックすると、「-1 +」と表示され、カート内の同じアイテムの数を増減することができます。または、単に数字が0未満になると、Angular2 - HTMLコンテンツの表示(クリック)イベント(カートに追加/増減)

 save(){ 
     this.addBtn = 'Here it should show some html content instead of text only'; 

    //I wanted to do something like this, but it does not work: 
    // this.addBtn = <h3 style="font-weight:700;color:white;">-</h3><span>1</span><h3 style="font-weight:700;color:white;">+</h3>; 
     } 
(クリック))、再び「カートに

constructor() { 
this.addBtn = 'Add to cart'; 
} 

そしてクリックが上で実行される火災の機能を追加

HTML:

 <button (click)="save()">{{addBtn}}</button> 

私が思うに、私は必要な結果を達成するために、保存()関数内でいくつかのAngular2/JavaScriptコードを追加する必要があります。しかし、Angular2に関するリソースが不足しているため、私は立ち往生しました。あなたの助けは本当に感謝しています!

+0

使用すると、1つのボタンがあります。それは増分*同じアイテムの数を増やすことになっていますか? – tchelidze

+0

ユーザーが「追加」ボタンをクリックしたとき、「追加」ボタンをクリックしたときに同じものが「 - 1 + ' –

+0

」に置き換えられなければなりません。 – tchelidze

答えて

0

Angular2では、コンポーネントクラスからHTMLマークアップを挿入しません。

あなたは* ngIfディレクティブ、このようなものを使用する必要があります:

HTML:

<button *ngIf="isCartEmpty" (click)="save()">Add to cart</button> 
<button *ngIf="!isCartEmpty" (click)="save()"> 
    <h3 style="font-weight:700;color:white;">{{sign}}</h3><span>{{amount}}</span> 
</button> 

コンポーネント:

... 
amount: number; 
isCartEmpty: boolean; 
sign: string; 

save(){ 
    if (this.amount === 0) { 
     this.isCartEmpty = true; 
    } else { 
     this.isCartEmpty = false; 

     this.sign = ....; 
    } 
} 
    ... 
+0

あなたの答えをありがとうが、あなたのソリューションの問題は、1つではなく2つのボタンが表示され、同じボタンが最初に「追加」を表示する必要があるということです。 ' - 1 +'によって –

+0

ああ、私は**を追加するのを忘れていました!** ** ngIfのために、私は今コードを変更しました。したがって、** isCartEmpty **状態に関しては常に1つのボタンしか表示されません。 – tibbus

+0

私はすでにそれを見て解決しましたが、問題は、増分/減分の構造体を追加する方法がわかりません。あなたはそれを達成する方法を示すことができますか?それはこのスレッドの主題です。 –

関連する問題