typescript 将类应用于Angular 中的每个布线元件

3ks5zfa0  于 2022-12-24  发布在  TypeScript
关注(0)|答案(3)|浏览(158)

有没有什么方法可以将类应用到Angular中的每个路由组件?一种方法是为每个组件使用host属性,如

@Component({
    moduleId: module.id,
    selector: 'one',
    host :{class :'my-class'}
    templateUrl: 'one.html',
})

但我不想为每个组件都写这个。

niwlg2el

niwlg2el1#

如果您在应用程序中使用多个router-outlet,请向router-outlet添加类,并应用@Ludevik建议的相同代码:

<div>
  <router-outlet class="routed-module-component"></router-outlet>
  <app-router-component-instance>
    <router-outlet></router-outlet> <!-- Will not be affected -->
  <app-router-component-instance>
</div>

然后引用该类而不是router-outlet:

.routed-module-component  + * {
  // add style
}
gmxoilav

gmxoilav2#

您真的需要添加类还是只设置所有布线元件的样式?您可以添加此命令来设置所有布线元件的样式:

router-outlet + * {
    //your styles
}

对于Angular 6+使用:

router-outlet + ::ng-deep * {
    //your styles
}

说明:
Angular在<router-outlet>标签旁边插入组件,因此呈现的html看起来如下所示:

<router-outlet></router-outlet>
<some-component></some-component>

router-outlet + *<router-outlet>的任何下一个同级的css选择器

ifmq2ha2

ifmq2ha23#

如果使用**<router-outlet>**,只需在插座周围添加一个div,并将div的类设置为"my-class"

<div class="my-class">        
    <router-outlet></router-outlet>
</div>

相关问题