Angular 2.0和D3.js不在svg上应用Css

Laz*_*tic 6 css svg d3.js angular

我正在使用Angular 2.0 TypeScript和d3.js libary来创建grafic.我正在尝试在asix(大多数importand shape-rendering: crispEdges;)上应用css .你有什么主意吗?

这是代码

    var vis = d3.select("#visualisation"),
        WIDTH = 1000,
        HEIGHT = 500,
        MARGINS = {
            top: 20,
            right: 20,
            bottom: 20,
            left: 50
        },
        xRange = d3.scale.linear()
                   .range([MARGINS.left, WIDTH - MARGINS.right])
                   .domain([d3.min(this.calculationResults, function(d) { return d.time;}),
                             d3.max(this.calculationResults, function(d) { return d.time;})]),
        yRange = d3.scale.linear()
                    .range([HEIGHT - MARGINS.top, MARGINS.bottom])
                    .domain([d3.min(this.calculationResults, function(d) { return d.force; }),
                             d3.max(this.calculationResults, function(d) { return d.force;})]),
        xAxis = d3.svg.axis()
            .scale(xRange)
            .ticks(10)
            .tickSize(5)
           .tickSubdivide(true),
        yAxis = d3.svg.axis()
            .scale(yRange)
            .ticks(10)
            .tickSize(5)
            .orient("left")
            .tickSubdivide(true);

    vis.append("svg:g")
        .attr("class", "x axis")
        .attr("transform", "translate(0," + (HEIGHT - MARGINS.bottom) + ")")
        .call(xAxis);

    vis.append("svg:g")
        .attr("class", "y axis")
        .attr("transform", "translate(" + (MARGINS.left) + ",0)")
        .call(yAxis);
Run Code Online (Sandbox Code Playgroud)

和css代码

.axis path, .axis line
{
      fill: none;
      stroke: #777;
      shape-rendering: crispEdges; 
}
.tick
{
      stroke-dasharray: 1, 2;
}
Run Code Online (Sandbox Code Playgroud)

请分享你的答案:)

mic*_*yks 7

我不确定,但这对你有帮助,

封装模式

和/或

刺穿CSS组合器 >>>, /deep/::shadow

看这里 - D3.js组件中的样式不显示在角度2中

好运 !