Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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 在角度2(4)外单击关闭_Angular_Angular2 Template - Fatal编程技术网

Angular 在角度2(4)外单击关闭

Angular 在角度2(4)外单击关闭,angular,angular2-template,Angular,Angular2 Template,最近我发布了类似的问题,但我无法让它工作,所以我将在这里引用它,并再次寻求帮助,因为我无法做到这一点 问题: 因此,我需要做以下工作:我有一个侧菜单,点击菜单中的一个列表项,我打开另一个侧栏菜单(它不是下拉菜单),我需要在单击新侧菜单以外的任何位置时关闭它 我的组件结构如下:布局组件>边栏组件>小菜单组件 所以我打开小菜单,点击侧边栏组件内部。我试过: 它们似乎不起作用 谢谢。所以我实际上已经解决了这个问题,但只有一个下拉列表,但我觉得它与您正在寻找的内容类似 在组件/指令中 construc

最近我发布了类似的问题,但我无法让它工作,所以我将在这里引用它,并再次寻求帮助,因为我无法做到这一点

问题:

因此,我需要做以下工作:我有一个侧菜单,点击菜单中的一个列表项,我打开另一个侧栏菜单(它不是下拉菜单),我需要在单击新侧菜单以外的任何位置时关闭它

我的组件结构如下:布局组件>边栏组件>小菜单组件

所以我打开小菜单,点击侧边栏组件内部。我试过:

它们似乎不起作用


谢谢。

所以我实际上已经解决了这个问题,但只有一个下拉列表,但我觉得它与您正在寻找的内容类似

在组件/指令中

constructor() {
    document.addEventListener('click', this.offClickHandler.bind(this));
}

offClickHandler(event:any) {
    if (!event.target.closest(".select-options") && !event.target.closest(".select-input")) { 
        // do whatever you want here
    }
}

这将检查是否在打开的div/dropdown中单击了关闭,但没有单击。然后执行offClickHandler中的代码。因此,只需将offClickHandler中的类设置为在单击时要关闭的侧菜单,然后将其隐藏在if语句中即可。

我尝试过这个方法,但它不起作用:/