Winkel 5 klicken Sie auf binden, um Anker-tag
Ich zu binden, müssen Sie ein click-Ereignis auf einen Anker in mein template:
Mein html sieht so aus:
<a (click)="deleteUser(user)">
<i class="la la-trash"></i>
</a>
user
ist eine variable aus einer früheren *ngFor="let user of users"
Den deleteUser()
Funktion deklariert ist auf meinem users.component.ts
Datei:
import { Component, OnInit, ViewEncapsulation, AfterViewInit } from '@angular/core';
import { Helpers } from '../../../../helpers';
import { ScriptLoaderService } from '../../../../_services/script-loader.service';
import { User } from '../../../../models/user';
import { UsersService } from '../../../../_services/users.service';
import swal from 'sweetalert';
@Component({
selector: ".m-grid__item.m-grid__item--fluid.m-wrapper",
templateUrl: "./users.component.html",
styleUrls: ["./users.component.scss"],
encapsulation: ViewEncapsulation.None,
})
export class UsersComponent implements OnInit, AfterViewInit {
users: User[];
constructor(
private _script: ScriptLoaderService,
private usersService: UsersService
) { }
ngOnInit() {
this.getUsers();
}
getUsers(): void {
this.usersService.getUsers()
.subscribe(users => this.users = users)
}
ngAfterViewInit() {
this._script.load('.m-grid__item.m-grid__item--fluid.m-wrapper',
'assets/app/js/users.js');
}
deleteUser(user: User): void {
swal({
title: `Eliminar usuario ${user.name}`,
text: "Una vez eliminado, toda su información será eliminada!",
icon: "warning",
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
this.usersService.deleteUser(user.id)
.subscribe(() => {
swal("Usuario eliminado", {
icon: "success",
});
});
}
});
}
}
Jedoch das click-Ereignis nie ausgelöst wird. Es geht einfach nicht, nichts tun. Keine Fehler, nichts.
Ich habe versucht, eine Menge von Variationen zu versuchen, damit es funktioniert:
- routerLink=""
- [routerLink]=""
- href=""
- href="#"
- href="#!"
- href="!#"
- Ändern
<a>
tag für<div>
,<span>
,<div>
,<button>
aber keiner war
Habe ich versucht, dieses eine andere Frage aber ich denke, es hat nicht funktioniert, weil es ist Angular2 (ich bin mit Winkel-5).
Dem template das ich verwende, ist Metronic (nur für den Fall relevant ist)
Wie Sie wissen, es ist nie gefeuert? Ich meine, wie hast du Debuggen ?
Also, ich gehe davon aus, dass Ihre Warnung nicht zeigen, bis Sie entweder? Basierend auf Ihren Kommentar auf die andere Antwort, die ich nehme an, Sie haben versucht zu
Dies ist eine alte Frage, aber es wäre gut zu wissen was da passiert ist. @AgashThamo. Ja, die Konsole zeigte leer und sauber. Keine Fehler, keine Warnungen, nichts. Von diesem Zeitpunkt wusste ich nicht, wie die VSCode debugger. Aber ich benutzt die javascript -
Also, ich gehe davon aus, dass Ihre Warnung nicht zeigen, bis Sie entweder? Basierend auf Ihren Kommentar auf die andere Antwort, die ich nehme an, Sie haben versucht zu
console.log()
vor dem Aufruf swal()
. Dies ist in der Tat merkwürdig. Hat die Konsole zeigt keine Fehler geschehen, bevor die (auf -) Veranstaltung könnte registriert werden? Oder ist Ihre Konsole leer und "sauber", ohne irgendwelche Warnungen, Fehler oder irgendetwas? Hast du debug zum Beispiel mit VSCode und Chrome-Debugger?Dies ist eine alte Frage, aber es wäre gut zu wissen was da passiert ist. @AgashThamo. Ja, die Konsole zeigte leer und sauber. Keine Fehler, keine Warnungen, nichts. Von diesem Zeitpunkt wusste ich nicht, wie die VSCode debugger. Aber ich benutzt die javascript -
debugger
- Funktion, aber es schien nie zu, dass die FunktionInformationsquelleAutor javierojeda | 2018-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich Stand vor dem gleichen problem, und eine Lösung finden, fügen Sie einfach class= 'btn' seine Arbeit properlly.
InformationsquelleAutor YOG_PHP
Ich hatte das gleiche problem. Meine Lösung war:
Wenn Sie nicht über ein < i > - tag-dort können Sie warp den Link-text in < span >
InformationsquelleAutor Thomas
(Klick) sollte die Arbeit für die Anker-tags in eckigen 5. Ich habe es versucht. Der code scheint in Ordnung zu sein für mich, außer die sweet alert ( ich weiß nicht, was das ist).
Versuchen, das hinzufügen einer Konsole.log beim start der Methode und sehen, ob Sie bekommen, dass in th elogs
console.log
zeigt nicht weder. Zuerst dachte ich, es hat etwas zu tun mit einer anderen Funktion aufgerufendeleteUser
aber meine Funktion ist die einzige Definition in der gesamten CodebasisInformationsquelleAutor Josf
Stand ich vor demselben Problem, bei dem click-Ereignis auf < a > - tag nicht funktioniert hat.
Umgehen, denn das ist zu wrap < i > - tag und setzen click-Ereignis auf, tag wie unten
Mit dieser Art click-Ereignis begann aber noch hatte ich die Frage in meinem Kopf warum es nicht funktioniert auf < a > - tag nach einigen Recherchen fand ich, es war nicht zu arbeiten, weil von unten Stil angewendet auf < a > tag
Um das Problem beheben entfernen Sie entweder über Stil oder fügen Sie unten Stil
Hoffe, dies wird helfen, wenn dasselbe problem in Ihrem Fall
Abgesehen von dieser als best-practice-immer href="javascript: void(0)" in < a > tag, um zu vermeiden Sie es, um die Navigation auf Startseite und Stil cursor: pointer;, ob der Standard-Stil von < a > tag wird immer über-geritten von einige Stil in Ihre Applikation
InformationsquelleAutor Vicky Kumar