2016-05-07 4 views
0

Derzeit habe ich eine Schaltfläche, in der ich einige HTML in dieser Schaltfläche anzeigen möchte, wenn ein Klick ausgeführt wird (es ist im Grunde eine Schaltfläche ADD TO CART Sobald der Benutzer darauf klickt, sollte "- 1 +" angezeigt werden. Der Benutzer kann die Anzahl desselben Artikels im Warenkorb erhöhen oder verringern. Wenn die Zahl unter 0 fällt, sollte " In den Warenkorb“wieder)Angular2 - Anzeige HTML-Inhalt auf (klicken Sie auf) Ereignis (in den Warenkorb erhöhen/verringern)

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

Und eine Funktion, die ausgelöst wird, wenn ein Klick auf durchgeführt wird (klicken)

 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>; 
     } 

HTML:

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

denke ich, ich einige Angular2/JavaScript-Code innerhalb der save() Funktion, um die gewünschten Ergebnisse hinzufügen müssen zu erreichen; Aufgrund des Mangels an Ressourcen über Angular2 blieb ich jedoch stecken. Ihre Hilfe wird wirklich geschätzt!

+0

Sie einen Knopf haben. Soll es die Anzahl der gleichen Items * erhöhen oder verringern? – tchelidze

+0

Ich weiß, wenn der Benutzer auf die 'ADD'-Schaltfläche klickt, sollte dieselbe durch' - 1 + ' –

+0

ersetzt werden, wenn der Benutzer auf die Schaltfläche 'HINZUFÜGEN' klickt, * die Anzahl gleicher Elemente * sollte erhöht oder verringert werden? – tchelidze

Antwort

0

In Angular2 injizieren wir kein HTML-Markup aus der Komponentenklasse.

Sie benötigen die * ngIf Richtlinie, so etwas zu verwenden:

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> 

Komponente:

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

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

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

Vielen Dank für Ihre Antwort, aber das Problem mit Ihrer Lösung ist, dass es 2 Tasten anstelle von nur einer zeigt, was ich tun möchte, ist die gleiche Schaltfläche sollte zuerst 'ADD' zeigen, sobald der Benutzer klickt, wird ersetzt von '- 1 +' –

+0

oh, ich habe vergessen, die **! ** für die zweite * ngIf hinzuzufügen, änderte ich den Code jetzt. Es wird also immer nur 1 Schaltfläche für den Status ** isCartEmpty ** angezeigt. – tibbus

+0

Ich habe das schon gesehen und es gelöst, aber das Problem ist, dass ich nicht weiß, wie man den structor des Inkrementierens/Dekrementierens hinzufügt. Können Sie bitte zeigen, wie Sie es erreichen können, denn das war das Hauptthema dieses Threads. –

Verwandte Themen