Angular中的指令问题

时间:2018-12-27 01:33:53

标签: angular typescript primeng

我有一个下拉菜单,效果很好。如果用户选择一个选项,然后从键盘上按“删除” “退格” 按钮,则下拉菜单中的值将被清除(这很好 >)。但是,我正在尝试创建一个指令,该指令将执行相同的操作,但是无法使其正常工作。谁能为我指出正确创建此指令的正确方向?

非常感谢!

这是我的代码:

LIVE DEMO

px

2 个答案:

答案 0 :(得分:1)

这是指令代码

@Directive({
  selector: '[customDropDown]'
})
export class CustomDropDownDirective {

  @Output() updateProperty: EventEmitter<any> = new EventEmitter();

  constructor(private el: ElementRef, private control : NgControl) { }

    @HostListener('keyup',['$event'])onkeyup(event:any){
    if(event.keyCode === 8){
       let currentElementName = this.el.nativeElement.value;
      this.control.control.setValue('');
      this.updateProperty.emit(false);
    }
  }
}

这是LIVE DEMO的链接,我只是更新您的示例。还有一件事,就是您忘记了将指令添加到app.component.ts中,这就是为什么他没有进行演示的原因。

答案 1 :(得分:0)

您可以使用按键来帮助您捕获按键上的事件。可以这样

Doctor

别忘了从@ angular / core导入NgControl。