指定嵌套的Angular 2组件的样式类

19 浏览
0 Comments

指定嵌套的Angular 2组件的样式类

在my.component.html中写下如下代码:


然后当我想要使用我的组件时,我想同时指定它们的样式类:


上述代码无效(即nested-component没有被分配样式类.nested-component-style)。你会如何修复上面的代码?欢迎提供其他解决方法。

0
0 Comments

在Angular 2中,当嵌套的组件需要应用特定的样式类时,有时会出现问题。为了解决这个问题,可以使用以下方法:

1. 在父组件中使用/deep/ .nested-component-style>>> .nested-component-style来应用样式类到子组件中。

2. 为了更安全起见,可以将样式类.nested-component-style放在app级别的styles.css中,以便全局定义。

3. 需要注意的是,/deep/和>>>选择器的浏览器支持可能有限。

更多信息可以在这里找到。

0
0 Comments

在上述代码中,问题的原因是在嵌套的Angular 2组件中指定样式类时出现了问题。解决方法是使用[class]属性绑定样式类,或者使用安全HTML管道将所有内容作为HTML附加。

问题的原因是,尽管样式类的名称被正确识别,但由于选择器的添加,样式类的名称最后一个数字不同,导致样式类无法应用于嵌套的组件。

解决方法之一是使用[class]属性绑定样式类,如下所示:

<nested-component [class]="'nestedClass'"></nested-component>

另一个解决方法是使用安全HTML管道将所有内容作为HTML附加。可以参考以下答案:[这里](https://stackoverflow.com/questions/34585453)。

解决这个问题的方法是使用[class]属性绑定样式类,或者使用安全HTML管道将所有内容作为HTML附加。

0
0 Comments

问题出现的原因是由于Angular 2组件嵌套时,样式类选择器会被添加一个特殊的标识符,导致样式类无法正确应用到嵌套的子组件上。

解决方法是在子组件中添加一个变量,并将样式类赋值给这个变量。具体的代码如下:

() nestedClass = '';

将这段代码添加到子组件的类中即可。这样子组件的HTML模板中的样式类就会正确显示,如下所示:

Hello

然而,虽然样式类名称是正确的,但是由于某种原因,样式类选择器会被添加一个选择器标识符,例如"my-component-style[_ngcontent-c5]"和"nested-component-style[_ngcontent-c5]"。但是,组件生成的选择器标识符为"_ngcontent-c8",注意最后一位数字不同,这导致样式类无法正确应用到嵌套组件上。

因此,为了解决这个问题,需要在父组件的样式表中添加一个特殊的选择器,以匹配子组件的选择器标识符。具体的代码如下:

my-component-style[_ngcontent-c8] nested-component-style[_ngcontent-c5] {
  /* Your styles here */
}

将这段代码添加到父组件的样式表中,然后样式类就可以正确应用到嵌套组件上了。

0