Angular 2.0从左到右模块和阴影DOM

Angular 2.0从左到右模块和阴影DOM,angular,shadow-dom,Angular,Shadow Dom,我有一个网站,支持“从右到左”的语言,如阿拉伯语。 如果语言是阿拉伯语,我会在body标签上添加dir=“rtl”属性。通过这种方式,所有内联定位的子对象都从右侧对齐,即使它们位于自定义组件内 现在,我希望有一个自定义样式,以防这些组件之一继承从右向左的指令。实现这一目标的常见方法如下: body[dir="rtl"] myComponent { // custom style if I am in right to left } 问题是,使用阴影DOM时,选择器将无法获取父对象的属性,因此不

我有一个网站,支持“从右到左”的语言,如阿拉伯语。 如果语言是阿拉伯语,我会在body标签上添加
dir=“rtl”
属性。通过这种方式,所有内联定位的子对象都从右侧对齐,即使它们位于自定义组件内

现在,我希望有一个自定义样式,以防这些组件之一继承从右向左的指令。实现这一目标的常见方法如下:

body[dir="rtl"] myComponent {
// custom style if I am in right to left
}
问题是,使用阴影DOM时,选择器将无法获取父对象的属性,因此不会应用“我的样式”。因此,我想知道是否有任何方法可以让模块使用Angular 2.0显式继承父属性?这样我就可以简单地写作了

myComponent[dir="rtl"]{
// my stlyles
}

我完成了…

Angular2中没有阴影DOM,除非您设置了
ViewEncapsulation.Native
。是你干的吗?Angular2的风格应该没有问题。您可以使用
>>
/deep/
跨越组件边界


如果动态添加HTML(通过一些非角度的JS库),则也可以使用
>>
/deep/
,但这需要更多的代码来演示您的情况。除非设置
ViewEncapsulation.Native
,否则Angular2中没有阴影DOM。是你干的吗?Angular2的风格应该没有问题。您可以使用
>>
/deep/
跨越组件边界

如果动态添加HTML(通过一些非角度的JS库),则也可以使用
>>
/deep/
,但这需要更多的代码来准确地演示您的情况。

3种可能的方法:

A.最佳解决办法

:host-context([dir="rtl"]) myComponent{
// custom style if I am in right to left
}
B.不在任何地方工作(还没有?),依靠

C.以编程方式显式地将类放入组件(错误)

3种可能的方式:

A.最佳解决办法

:host-context([dir="rtl"]) myComponent{
// custom style if I am in right to left
}
B.不在任何地方工作(还没有?),依靠

C.以编程方式显式地将类放入组件(错误)