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

时间:2017-04-16 03:32:55

标签: angular angular2-template

我想将模型值从我的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>

目前,它正在显示model.EmailAddress,我想获得评估值(我在组件中获得)。有没有办法得到它?

2 个答案:

答案 0 :(得分:3)

您需要使用[]绑定值

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

并且在onClick方法中使用this.value而不仅仅是值

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

答案 1 :(得分:0)

我刚刚使用了{{model.EmailAddress}},但它确实有效。

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