如何将组件值传递给Angular2中的自定义指示主机侦听器



我想将模型值从我的html模板传递给我的自定义指令:

    @Directive({
    selector: '[eventlistener]'
})
export class EventListener {
  @Input() value:string = 'Not Defined';
    @HostListener('click')
    onClick() {
        console.log('You clicked me',value);
    }
}

和我的HTML模板:

<button eventlistener (click)="captureClickEvent()" value="model.EmailAddress">test</button>

当前,它正在显示模型。emailAddress,我想获得评估的值(我在组件中获得的值(。有什么方法可以得到吗?

您需要使用[]绑定值

<button eventlistener (click)="captureClickEvent()" [value]="model.EmailAddress">test</button>

在onclick方法中使用this.value而不是仅值value

@HostListener('click')
onClick() {
    console.log('You clicked me', this.value);
}

我只是使用{{model.emailAddress}}},它起作用了。

<button eventlistener (click)="captureClickEvent()" value="{{model.EmailAddress}}">test</button>