2017-05-30 53 views
1

我使用的是一个Angular 2组件,它遵循属性,并且在Chrome桌面浏览器中工作正常。Angular 2 ViewEncapsulation.Native vs ViewEncapsulation.Emulated问题在铬的iPad和铬浏览器

@Component({ 
    selector: 'some-header', 
    templateUrl: './someheader.component.html', 
    styleUrls: ['./someheader.component.scss'], 
    encapsulation: ViewEncapsulation.Native 
}) 

但在我的iPad上的Chrome浏览器,它是给我在页面加载以下错误

hostEI.createShadowRoot is undefined 

但是,当我将其更改为

ViewEncapsulation.Emulated 

它开始在我的iPad上运行,但我的UI在桌面上打破了。

我检查以下链接计算器

link

但我的问题是,我可以根据组件的装饰一定条件下动态地添加此encapsulation属性。

感谢

+1

[网络组件polyfills(https://www.webcomponents.org/polyfills/)应该做的伎俩 –

+0

感谢这就是我一直在寻找:) – Rishi

回答

2

并非所有的浏览器不支持ShadowDom(如IE,Safari浏览器等),在这种情况下createShadowRoot被失败。

你可以从下面的链接添加对WebComponent的polyfills轻松解决这个问题

https://www.webcomponents.org/polyfills/