关闭点击Angular 2(4)之外

时间:2017-06-05 13:36:38

标签: angular angular2-template

最近我发布了类似的问题,但我无法使其正常工作,所以我会在这里引用它并再次寻求帮助,因为我无法做到。

问题:https://www.npmjs.com/package/angular2-click-outside

所以,我需要做以下事情:我有一个侧边菜单,点击该菜单中的一个列表项,我打开另一个侧边栏菜单(它不是下拉列表),我需要在点击任何地方时关闭它在新的侧面菜单上。

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

所以我在侧边栏组件内点击打开小菜单。我试过了:https://www.npmjs.com/package/ng2-click-outside

{{3}}

他们似乎没有工作。

感谢。

1 个答案:

答案 0 :(得分:0)

所以我实际上已经处理了这个但只有一个下拉菜单,但我觉得它会与你想要的类似。

在您的组件/指令

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 /下拉列表中。然后offClickHandler内部的代码将执行。因此,只需将offClickHandler中的类设置为您在单击时要关闭的侧边菜单,然后将其隐藏在if语句中。