Javascript angular2如何在组件视图中区分光DOM和阴影DOM
我正在阅读关于主机和可见性的文章,其中陈述了以下关于Javascript angular2如何在组件视图中区分光DOM和阴影DOM,javascript,angular,Javascript,Angular,我正在阅读关于主机和可见性的文章,其中陈述了以下关于viewProvidersComponentdecorator的元数据属性的内容: 通过viewProviders,我们可以非常明确地告诉DI系统 提供程序可用于哪个子注入器(灯光DOM或阴影) DOM) 我想知道angular2如何区分组件模板中的光DOM和阴影DOM 本文还提到了标记: 如果我们相应地配置Angular,这个DOM树可以是影子DOM。 这也是为什么我们有一个标签。它是有角度的 内容插入点的实现,这是另一个阴影 DOM特性 因
viewProviders
Componentdecorator的元数据属性的内容:
通过viewProviders,我们可以非常明确地告诉DI系统
提供程序可用于哪个子注入器(灯光DOM或阴影)
DOM)
我想知道angular2如何区分组件模板中的光DOM和阴影DOM
本文还提到了
标记:
如果我们相应地配置Angular,这个DOM树可以是影子DOM。
这也是为什么我们有一个标签。它是有角度的
内容插入点的实现,这是另一个阴影
DOM特性
因此,放入
ng content
中的任何内容都被视为shadowdom
?如果您有一个组件模板,如
@Component({
selector: 'my-comp',
template: `
<div>shadow DOM<div>
<ng-content></ng-content>
<div>shadow DOM<div>`,
...
@组件({
选择器:“我的公司”,
模板:`
阴影DOM
阴影DOM`,
...
像这样使用它
<my-comp>
<div>light DOM</div>
</my-comp>
轻DOM
那么它将导致
<my-comp>
<div>shadow DOM</div>
<div>light DOM</div>
<div>shadow DOM<div>
</my-comp>
阴影DOM
轻DOM
阴影DOM
因此,灯光DOM实际上不是组件模板的内容,它只是投影在阴影DOM中预定义位置的子内容
如果使用默认视图封装
Emulate
,则只会模拟阴影DOM。只有使用Native
它才会在支持它的浏览器上成为真正的阴影DOM。谢谢,如果使用默认视图封装仿真,则只会模拟阴影DOM。-但是注入器将与Emulate类似
和本机
,对吗?是的,模拟的行为在这里匹配。只有难以模拟的浏览器功能不被模拟(样式被添加到
而不是组件元素,CSS封装受到限制,…)明白了,谢谢,
的想法似乎与的想法非常相似。它与
元素更为一致,浏览器本身支持阴影DOM