是否可以在angular中将指令传递给事件处理程序?

时间:2018-10-29 07:00:05

标签: angular

这样做可以吗?

//template file
<input *ngFor="let elem in elements" [myDirective]="elem" 
      (keyup.enter)="onEnter(myDirective)">

//.ts file
onEnter(dir: MyDirective){
   //access myDirective instanse here
}

我知道我可以通过@ViewChildren做到这一点,但我想确保直接通过还可以吗?

1 个答案:

答案 0 :(得分:2)

在您的指令中,确保设置exportAs

@Directive({
 selector: '[myDirective]',
 exportAs: 'myDirective'
})

然后,您可以在模板中获得对它的引用:

<input *ngFor="let elem in elements" [myDirective]="elem" #test="myDirective"
  (keyup.enter)="onEnter(test)">

在这里我将其称为test,但您可以随心所欲地对其进行命名