(Klick)=" Ereignis nicht arbeiten , im Winkel 2
Erkundete ich eine Menge, aber die Lösung ist nicht für mich arbeiten.
Ich bin versucht, eine Methode aufzurufen, die in meinem code aber es funktioniert nicht. Es gibt keine Fehler aber das click-Ereignis ist nicht arbeiten auch.
In meinem code, ich bin das hinzufügen einer Schaltfläche dynamisch und es wird Hinzugefügt, in meinem code. Aber wenn ich Klick auf Approved
oder UnApproved
dann ist nichts passiert. Ich bin mit <ng-table>
, Approved
und UnApproved
- Taste sind in <ng-table>
Richtlinie.
Bitte schlagen Sie mich, wo ich falsch mache?
Mein code ist:
editData() {
this.data.forEach(function (row) {
if (row.isApproved) {
row.editButton = "<button (click)='approveUnApproveLeave()'>UnApproved</button>";
} else {
row.editButton = "<button (click)='approveUnApproveLeave()'>Approved</button>";
row.isApproved = row.isApproved.toString();
}
})
}
approveUnApproveLeave() {
console.log("approveUnApproveLeave called");
}
} //class closed
finden Sie die Momentaufnahme für ein besseres Verständnis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
innterHTML
zur Anzeige von dynamischen HTML dann...Wenn Sie hinzufügen, html dynamisch mit
innerHTML
es funktioniert gut, und geben Sie den Wunsch-Ausgang in der Benutzeroberfläche vor. Aber mit dem gleichen Ansatz, Wenn Sie dynamic HTML enthältangular context
in es zB. (klicken Sie auf) Ereignis,angular context
wird nicht funktionieren, weilinnerHTML
ist nicht für ihn bestimmt.So, wenn dynamische HTML enthält eckige Rahmen in es, müssen Sie sich mit DynamicComponentLoader, die injiziert Komponente zusammen mit HTML-dynamisch, wo Sie verwenden können, angular Kontext z.B. click-Ereignis
DEMO: https://plnkr.co/edit/BcQXNf5AWrDUXFamIGIy?p=preview
Winkel-Prozesse, Komponenten-templates, wenn es kompiliert wird, eine Komponente (mit AoT, bevor der browser lädt die Anwendung). HTML Hinzugefügt, danach nicht verarbeitet werden durch Eckige.
(click)="..."
Hinzugefügt wird und dann ignoriert Eckig.Was Sie tun können, ist die Registrierung eines Ereignishandlers zwingend
(click)='approveUnApproveLeave()'
aus, den code habe ich kopiert aus der Antwort. Ich denke, das ist es, was die downvotes waren Vordergrund. Fixiert, dass ich in meiner Antwort.