【发布时间】:2018-01-09 23:02:15
【问题描述】:
我需要在模板中的锚点上绑定点击事件:
我的 html 看起来像这样:
<a (click)="deleteUser(user)">
<i class="la la-trash"></i>
</a>
user 是前一个 *ngFor="let user of users" 的变量
deleteUser() 函数在我的users.component.ts 文件中声明:
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",
});
});
}
});
}
}
但是,该点击事件永远不会触发。它根本没有做任何事情。没有错误,什么都没有。 我已经尝试了很多变体以使其发挥作用:
- routerLink=""
- [routerLink]=""
- href=""
- href="#"
- href="#!"
- href="!#"
- 将
<div>、<span>、<div>、<button>的标签更改为<a>,但均无效
我已经尝试过这个another question,但我认为它不起作用,因为它是 Angular2(我使用的是 Angular 5)。
我使用的模板是Metronic(以防万一)
【问题讨论】:
-
你怎么知道它从未被解雇?我的意思是你是怎么调试的?
-
那么,我假设您的警报也没有出现?根据您对另一个答案的评论,我假设您在致电
swal()之前确实尝试过console.log()。这确实很奇怪。控制台是否显示在注册 (click) 事件之前发生的任何错误?还是您的控制台是空的并且“干净”,没有任何警告、错误或任何东西?例如,您是否使用 VSCode 和 Chrome 调试器进行了调试? -
这是一个老问题,但最好知道那里发生了什么。 @AgashThamo。是的,控制台显示为空且干净。没有错误,没有警告,什么都没有。那时我还不知道如何使用 VSCode 调试器。但是我使用了 javascript
debugger函数,但似乎永远无法使用该函数
标签: typescript events angular5