Angular 角度的指令问题
我有一个下拉菜单,效果很好。如果用户选择一个选项,然后按下键盘上的“删除”按钮或“退格”按钮,下拉列表中的值将被清除(这非常有效。然而,我正在尝试创建一个指令,它将做同样的事情,但我无法让它工作。有人能告诉我如何正确创建此指令的正确方向吗 提前多谢 这是我的密码:Angular 角度的指令问题,angular,typescript,primeng,Angular,Typescript,Primeng,我有一个下拉菜单,效果很好。如果用户选择一个选项,然后按下键盘上的“删除”按钮或“退格”按钮,下拉列表中的值将被清除(这非常有效。然而,我正在尝试创建一个指令,它将做同样的事情,但我无法让它工作。有人能告诉我如何正确创建此指令的正确方向吗 提前多谢 这是我的密码: 这是一个指令代码 @Directive({ selector: '[customDropDown]' }) export class CustomDropDownDirective { @Output() updatePr
这是一个指令代码
@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);
}
}
}
@指令({
选择器:“[customDropDown]”
})
导出类CustomDropDownDirective{
@输出()updateProperty:EventEmitter我刚刚更新了你的示例。还有一件事,你忘了在app.component.ts中包含你的指令,这就是他不在演示中工作的原因。你可以使用keypress这个东西来帮助你捕捉keypress上的事件。可以这样做
@HostListener('document:keypress', ['$event'])
handleKeyboardEvent(event: KeyboardEvent) {
this.key = event.key;
// inside this you can catch your key code
// then check is it backspace or delete keycode
// if it is then remove data from selector with help of NgControl.
}
别忘了从@angular/core导入你的NgControl。还要添加event.keyCode===46
,这是删除键。@SaddamPojee是的,你是对的,我忘了提到这个键码,因为我举了他的例子,所以我错过了它。
@HostListener('document:keypress', ['$event'])
handleKeyboardEvent(event: KeyboardEvent) {
this.key = event.key;
// inside this you can catch your key code
// then check is it backspace or delete keycode
// if it is then remove data from selector with help of NgControl.
}