角度5单击绑定到锚标记

jav*_*eda 3 events typescript angular5

我需要在模板的锚点上绑定click事件:

我的html看起来像这样:

<a (click)="deleteUser(user)">
    <i class="la la-trash"></i>
</a>
Run Code Online (Sandbox Code Playgroud)

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",
                        });
                    });
            }
          });
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,单击事件永远不会触发。它根本什么也没做。没有错误,没事。我尝试了很多变体来使其正常工作:

  • routerLink =“”
  • [routerLink] =“”
  • href =“”
  • href =“#”
  • href =“#!”
  • href =“!#”
  • 更改<a>标签为<div><span><div><button>但没有工作

我尝试了另一个问题,但我认为它不起作用,因为它是Angular2(我正在使用Angular 5)。

我使用的模板是Metronic(以防万一相关)

小智 5

我面临着同样的问题,找到解决方案只需添加class ='btn'即可。

<a class ='btn' ><i (click)="deleteUser(user)" class="la la-trash"></i></a>
Run Code Online (Sandbox Code Playgroud)