当前位置:  开发笔记 > 前端 > 正文

如何在路由器插座创建组件元素时将css类应用于组件元素?

如何解决《如何在路由器插座创建组件元素时将css类应用于组件元素?》经验,为你挑选了3个好方法。

我有看起来像这样的DOM:


    
    ...

其中project元件是由路由器插入.

如何向此元素添加类?



1> drew moore..:

假设您始终希望将类应用于此组件,则可以host在组件元数据中使用:

@Component({
  selector:'project',
  host: {
      class:'classYouWantApplied`
  }
})

导致:


    
    ...


如果我想将类应用于所有路由组件怎么办?
如果你不这样做怎么办?做` ...``不起作用:/

2> Val..:

关键是/ deep / keyword:

    :host /deep/ router-outlet + project {
        display: block;
        border: 10px solid black;
    }

无需任何额外配置即可使用.

:host /deep/ router-outlet + * 对于由Angular Router动态创建的任何组件.

编辑2018/3/5:

由于Angular 4.3.0被/deep/弃用,其建议的替代方案是::ng-deep.关于此问题进行了长时间的讨论.


`:: ng-deep`现在也已弃用(v8.0.0)

3> JED..:

使用adjacent sibling selector*通配符选择紧随在之后的元素router-outlet


styles.css

router-outlet + * {
  /* your css */
}


非常聪明!但是,就我而言,它并不完美,因为我在路线之间使用了动画过渡。在过渡期间,```<router-outlet>```有两个组成部分。传入和传出。要解决此问题,只需将“ +”替换为“〜”。那就是`router-outlet〜*```。
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有