我有一个angular2应用程序在Chrome和Firefox中运行良好,但在Safari中我收到此错误:
TypeError el.createShadowRoot不是函数
同样在Edge:
来自Edge的更多信息:对象不支持属性或方法' createShadowRoot' 在BrowserDomAdapter.prototype.createShadowRoot(http://localhost:5000/lib/angular2/bundles/angular2.dev.js:22893:7)
我缺少一些垫片或聚合物吗?
答案 0 :(得分:6)
createShadowRoot()
时才能调用{p> ViewEncapsulation.Native
。
使用ViewEncapsulation.Emulated
或确保加载polyfill(我无法指导您如何操作,因为我不使用TS工具链,只使用Dart)
答案 1 :(得分:3)
我最近遇到了同样的问题,在Firefox上出现了此错误
!jProperty.HasMemberAttribute
从文档中,我了解到不赞成使用createShawdowRoot,而将其替换为attachShadow() https://developer.mozilla.org/en-US/docs/Web/API/Element/createShadowRoot
查看我Angular项目中所有组件的封装,一个组件脱颖而出,并使用了ViewEncapsulation.Native,该组件也已弃用,因此我按建议将其替换为ViewEncapsulation.ShadowDom,请检查 https://angular.io/api/core/Component#encapsulation
那为我治愈了。
因此,我想Firefox不再支持Native封装编译为createShawdowRoot。
答案 2 :(得分:1)
如果您在简单的HTML文件中遇到此问题,那么下面的代码行可能会有所帮助
element.attachShadow({mode: 'open'})