Angular 5单击绑定到锚标记

时间:2018-01-09 23:02:16

标签: typescript events angular5

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

我的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 =&#34;&#34;
  • [routerLink] =&#34;&#34;
  • HREF =&#34;&#34;
  • HREF =&#34;#&#34;
  • HREF =&#34;#&#34; <!/ LI>
  • HREF =&#34;#&#34;
  • 更改<a><div><span><div>的{​​{1}}代码,但无效

我已尝试过此another question,但我认为它不起作用,因为它是Angular2(我使用的是Angular 5)。

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

5 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,找到解决方案后,只需添加class ='btn'即可正常工作。

<a class ='btn' ><i (click)="deleteUser(user)" class="la la-trash"></i></a>

答案 1 :(得分:1)

我遇到了同样的问题。我的解决方案是:

<a href="" ><i (click)="deleteUser(user)" class="la la-trash"></i></a>

当你没有&lt;我&gt;标记在那里你可以扭曲&lt;中的链接文本span&gt;

答案 2 :(得分:0)

(click)应该适用于角度为5的锚标签。我试过了。代码似乎对我好,除了甜蜜警报(我不知道那是什么)。

尝试在方法的开头添加一个console.log,看看你是否在elogs中得到了

答案 3 :(得分:0)

答案 4 :(得分:0)

对我有用的是设置[routerLink]="['./']",在这种情况下,标签将成为链接,但是您可以对其进行任何附加操作(例如(click)