首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS不适用于Angular 2应用程序中的C3.js图表

CSS不适用于Angular 2应用程序中的C3.js图表
EN

Stack Overflow用户
提问于 2016-08-18 06:15:37
回答 2查看 1.6K关注 0票数 2

我在Angular 2应用程序中实现了一个C3.js图表,但是C3.css文件中的样式没有应用到它。我知道它正在加载(我把它复制到我的组件的scss文件中),但仍然不能工作。是因为图表是在css之后加载的吗?有人知道怎么解决这个问题吗?

我在ngOnInit中异步获取图表的数据,因此我认为在绘制图表之前应用css (这发生在接收数据时)。我也在想,这可能是因为Angular抛出了选择器。

代码语言:javascript
复制
ngOnInit() {
    // draw pie chart
    this.bitcoinService.getMapData()
        .subscribe(data => {
            var pieChartData = this.formatPieChartData(data);
            this.pieChartInit(pieChartData);  // call this.pieChartInit
        })
}


pieChartInit(data) {
  var chart = c3.generate({
      data: {
          columns: data, // example: [['data1', 30], ['data2', 120]]
          type: 'pie'
      }
});

我将C3 css直接复制到我的scs中,如下所示,它适用于我的组件中的其他所有内容:

代码语言:javascript
复制
@Component({
  moduleId: module.id,
  selector: 'bitcoin-dashboard',
  styles: [require('./bitcoin-dashboard.component.scss')],
  template: require('./bitcoin-dashboard.component.html')
})

此外,在调用pieChartInit之后,当我d3.select图表的一个元素时,样式可以正常工作。示例:

代码语言:javascript
复制
d3.selectAll('.c3-chart-arc path').style('stroke', 'white')

任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2017-02-01 13:34:47

CSS何时加载无关紧要。一旦它被加载,它就被应用。可能是css名称空间在起作用,并阻止浏览器匹配来自C3 CSS的类。加载完所有内容后,检查Chrome中的dom和类。

票数 -1
EN

Stack Overflow用户

发布于 2017-02-11 19:23:29

由非角度代码添加的HTML不会添加样式封装属性,因此不会应用样式。您可以使用/deep/ (以及别名>>>,但它不适用于SASS )来解决问题:

代码语言:javascript
复制
:host /deep/ .c3-chart-arc path {
  stroke: white;
}

另请参阅

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39007099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档