【发布时间】:2019-08-12 06:29:33
【问题描述】:
我创建了一个 Angular 属性指令,可以将其添加到按钮或链接并实现某种点击跟踪。请在此处查看简化示例:
import { Directive, HostListener, Input } from '@angular/core';
@Directive({
selector: '[appTrackClick]'
})
export class TrackClickDirective {
@Input() trackType = 'ButtonClick';
@Input() trackName: string;
@HostListener('click') onClick() {
this.trackClick()
}
constructor() { }
trackClick() {
if (!this.trackName) {
return false;
}
// Do the tracking...
}
}
我希望this.trackName 的值是单击的按钮或链接的文本。如何从元素中获取此信息?
如果可能,我想只在 Typescript 中执行此操作,而不必在模板中添加任何标记。
【问题讨论】:
-
将 ElementRef 注入构造函数:它将是对被单击的按钮/链接的引用。当然,我希望您意识到并非所有按钮/链接都有文本(它可能只是一张图片,或一大段 HTML)。
-
谢谢@JBNizet,您能否提供一个完整的示例作为答案,以便我将其标记为正确(如果有效)?
标签: angular