在自定义指令angular 4中实现onclick()

时间:2017-10-19 19:20:04

标签: javascript css angular typescript angularjs-directive

我有一个简单的按钮和一个指令我想要访问按钮的样式,在指令中添加带有onclick()函数的MarginLeft它不起作用但是从构造函数设置css工作如何在点击时使用它?请帮忙:

指令:

    import { Directive, ElementRef } from '@angular/core';

@Directive({
  selector: '[Bluecolored]'
})
export class BluecoloredDirective {

  constructor(private element:ElementRef) {
    console.log(element);
   element.nativeElement.style.color="blue";
   }
clicked(){
  this.element.nativeElement.style.marginLeft=20;
  console.log("marzi"+this.element.nativeElement.style.marginLeft);
}
}

这是模板:

<p Bluecolored>
  new-fom works!
</p>
<h1 Bluecolored>Blue Colored</h1>
<button   (click)="clicked()" Bluecolored>Click</button>

1 个答案:

答案 0 :(得分:2)

您可以在指令中使用HostListener:

@HostListener('click') onClick(){
    this.element.nativeElement.style.marginLeft=20;
    console.log("marzi"+this.element.nativeElement.style.marginLeft);
}

这样你就可以从按钮远程(click)="clicked()"

我将我的名字命名为onClick,但你可以点击它命名