- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在文档中的任何地方都找不到这个,但是当我单击属于父组件的组件内的某些内容时,我的 Node.contains() 函数不起作用。
我的父组件是这样的:
<div class="body">
<div class="item" *ngFor="let item of sortedItems;">
<cv-checkbox></cv-checkbox>
<cv-svg-icon></cv-svg-icon>
</div>
<div class="drop-zones" *ngFor="let zone of sortedItems.length + 1 | numberToArrayPipe;>
<div class="drop-zone"></div>
</div>
</div>
如您所见,我的父组件中有两个 Angular 组件:cv-checkbox
和 cv-svg-icon
。我已经向我的父组件添加了一个指令,如下所示:
<cv-layer-manager cvClickOutside (clickOutside)="toggleLayerManager()"></cv-layer-manager>
我在哪里检查点击的节点是否包含在父节点中,如下所示:
@HostListener('document:click', ['$event']) public onClick(event: MouseEvent) {
const clickedInside = this._elementRef.nativeElement.contains(event.target);
if (!clickedInside) {
this.clickOutside.emit();
}
}
如果我单击普通的 HTML 组件,一切都会按预期工作,但当我单击 Angular 组件时却没有。 contains 不检查 Angular 组件内部是否正确?
最佳答案
我在日期选择器上遇到了类似的问题。为了解决这个问题,我向当前组件添加了 allowClose 属性。
@ViewChild('element') elementRef: ElementRef;
private allowClose = true;
然后我添加了另一个 HostListener,它只监听当前组件的事件。
@HostListener('click', ['$event'])
clickInside(event: any) {
this.allowClose = false;
}
然后我修改了我的 clickOutside 方法以仅在 allowClose 为真时处理关闭,然后再次将 allowClose 设置回真。
@HostListener('document:click', ['$event'])
clickOutside(event: any) {
if (!this.elementRef.nativeElement.contains(event.target) && this.allowClose) {
this.handleClose();
}
this.allowClose = true;
}
就是这样!
关于angular - 在 Angular 2 中使用影子 DOM 时,Node.contains() 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977020/
我正在尝试创建一个邻接列表,为此我需要创建一个链接列表的数组列表。当我这样做时,这个 cityList 的大小不会更改为构造函数中传递的大小。我觉得这可能是由于阴影造成的,但我不确定阴影是如何工作的,
我正在包装应用程序的影子 jar 。该应用程序使用kotlin和一些外部依赖项。所有依赖项都在我的jar中,但在运行时出现以下异常: java.lang.NoSuchMethodError: java
我有两个自定义元素 #shadow-root (open) 我正在尝试设计 像这样: #desktop::shadow desktop-window { backgro
通过此实例化的 Web 组件样式不正确: connectedCallback() { const shadowRoot = this.attachShadow({ mode: 'open' });
规范在这里 - https://drafts.csswg.org/css-scoping/#slots-in-shadow-tree有注释如下。 Note: A non-obvious result
我在我的应用程序中使用网络组件。在 Web 组件中,我需要插入一个 React 组件。 Web Component 有 Shadow DOM。当我尝试使用以下方法渲染 react 组件时,出现错误。
CSS Scoping说 The descendants of a shadow host must not generate boxes in the formatting tree. Instea
在尝试比较两个 dll 的 API 更改时,一位同事注意到某些类有两个 GetType() 方法。 经过更深入的检查,结果是 System.Exception 隐藏了 GetType(): // th
HTML代码: #shadow-root (user-agent) "this is text in textarea" 我正在尝试使用此 JQuery 使用 id="in
我正在使用 Robolectric 并尝试创建 GoogleApiClient 的 Shadow 对象,但没有成功。 Shadow 类中的方法永远不会被调用。 GoogleApiClient 是接口(
我正在尝试寻找一种不使用 iframe 来封装 Javascript 的方法。理想情况下,我想要一种在父页面上加载外部 HTML 组件(小部件)的方法,而无需使用 iframe 附带的两步加载过程(首
我是Gradle和Shadow jar(Gradle version of Maven's Shade plugin)的新手。我正在构建一个胖jar,我想在其中合并服务文件(这就是为什么我首先使用影子
如您所见,我想动态添加内容,但 shadow DOM 不显示内容 我怎样才能使内容可见?我想让内容可见。 let shadow = document.querySelector('#nameTag')
我正在编写一个 chrome 扩展程序,它可以在页面加载或更改时修改元素属性。 我使用 Mutation Observer 执行此操作。然而,当加载/更改 shadow-dom(即嵌入的 twitte
我试图了解单选按钮如何在影子 dom 中工作。我有一个脚本标签,我将一个影子 DOM 附加到一个元素,然后附加一些单选按钮。我的问题是单选按钮未呈现。 Title Radi
我读了很多关于 shadow DOM 的文章,但对此不是很清楚。能谁能告诉我什么是 shadow DOM 以及如何为下面的代码添加一个? 最佳答案 Shadow DOM
关于 的 CSS 优先级规则是怎么说的?影子 DOM 中的标签? 我有一个元素 , 中包含的 CSS 文件与: component { display: inline-block; }
如果我的 Web 组件是 的直接子组件,我必须对它应用特殊的 CSS 样式。元素。到目前为止,这是我尝试过的: /* applies even if the component isn't a di
我尝试使用 https://github.com/webcomponents/webcomponentsjs 中的 polyfill 制作我自己的 Web 组件 这是我的代码: im-list.htm
我是一名优秀的程序员,十分优秀!