简体   繁体   English

如何在angular2中将组件值传递给自定义指令主机侦听器

[英]How to pass component value to Custom Directive Host Listener in angular2

I want to pass model value from my HTML template to my custom directive: 我想将模型值从我的HTML模板传递给我的自定义指令:

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

and in my HTML template : 在我的HTML模板中:

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

Currently, it's displaying model.EmailAddress, I want to get the evaluated value(which I get in the component). 当前,它正在显示model.EmailAddress,我想获取评估值(该值在组件中)。 Is there any way to get it? 有什么办法吗?

You need to use [] binding for value 您需要使用[]绑定来获取价值

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

and in onClick method use this.value instead of just value 在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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM