Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 模糊事件未在角度组件上触发_Angular_Components_Custom Controls - Fatal编程技术网

Angular 模糊事件未在角度组件上触发

Angular 模糊事件未在角度组件上触发,angular,components,custom-controls,Angular,Components,Custom Controls,我试图得到一个反应形式,以适当地处理模糊事件,它似乎没有正确地反应模糊 从'@angular/core'导入{Component,HostListener,HostBinding}; @组成部分({ 选择器:“应用程序组合框基本”, templateUrl:“./ComboBox basic.html” }) 导出类ComboxBasic{ @HostListener('blur',['$event.target'])onBlur(目标){ log(`onBlur():${new Date()

我试图得到一个反应形式,以适当地处理模糊事件,它似乎没有正确地反应模糊

从'@angular/core'导入{Component,HostListener,HostBinding};
@组成部分({
选择器:“应用程序组合框基本”,
templateUrl:“./ComboBox basic.html”
})
导出类ComboxBasic{
@HostListener('blur',['$event.target'])onBlur(目标){
log(`onBlur():${new Date()}-${JSON.stringify(target)}`);
}
}

一个
两个
四个!

经过大量的搜索和实验,我找到了一些使其正常工作所需的项目

  • 外部元素必须具有:
    tabindex=“0”
    ,才能聚焦。这是通过:
    @HostBinding('attr.tabindex')tabindex='0'实现的

  • 为模糊事件添加HostListener将捕获外部组件:
    @HostListener('blur',['$event.target'])onBlur(target){…}

  • 您仍然需要捕捉内部组件的模糊事件,以便单击“入”和“出”仍将触发<代码>(模糊)=“onBlur($event.target)”

  • 从'@angular/core'导入{Component,HostListener,HostBinding};
    @组成部分({
    选择器:“应用程序组合框基本”,
    templateUrl:“./ComboBox basic.html”
    })
    导出类ComboxBasic{
    //确保容器可以接收焦点,否则将看不到模糊事件。
    @HostBinding('attr.tabindex')tabindex='0';
    @HostListener('blur',['$event.target'])onBlur(目标){
    log(`onBlur():${new Date()}-${JSON.stringify(target)}`);
    }
    }
    
    一个
    两个
    四个!
    
    模糊事件不会在formarray中的控件上触发

    在不同的情况下,相同的问题,即模糊事件未触发,以及所建议的相同解决方案,尽管:
    在我的例子中,模糊事件不是在
    formarray
    下触发的。虽然在开发模式下触发了模糊事件,但在生产构建中,
    input
    select
    中没有触发模糊事件,没有检查其他事件。解决方案相同,为formarray设置包含div的
    tabindex=“0”
    ,事件开始触发。以防万一,如果有人面临同样的情况。

    什么?非常感谢您的评论。否则我永远也不会明白这一点。