iT邦幫忙

0

angular apply css

https://stackoverflow.com/questions/36475168/angular-2-0-d3-js-dont-apply-css-on-svg
如上訴這篇,d3去更動css angular不會重新繪畫,
解法有兩種一種是在component加入ViewEncapsulation.None另一個是CSS combinators >>>, /deep/, ::shadow

>>>, /deep/, ::shadow
這個似乎是在家加入的style加入,類似這樣:

>>> .append_in{}
/deep/ .append_in{}

但我目前試了兩個都沒反應...

像下列這個案例,可以成功append五個div進去,但到下一層的style就失效了。

import * as d3 from "d3";

var data = [38,69,72,42,58,87];

d3.select('.append_in').selectAll('div')
    .data(data)
    .enter()
    .append('div')
    .text(function(d){
        return d;
    }).style({
        'color':function(d){
            if(d<60){
                return 'red'
            }
        }
    });

html:

<div class="append_in">
</div>
看更多先前的討論...收起先前的討論...
froce iT邦大師 5 級 ‧ 2018-10-03 05:12:09 檢舉
D3幾版的?
v4以後不知道發啥瘋,style不接受物件。
https://github.com/d3/d3-selection/blob/master/README.md#selection_style

然後你標題下錯了...我要不是早起閒著逛了一下,要不然看到angular我不太會進來。
Zaku iT邦新手 4 級 ‧ 2018-10-03 13:31:21 檢舉
npm 裝 D3應該最新版的,新下載的。什麼意思angular不太會進來?
froce iT邦大師 5 級 ‧ 2018-10-03 14:00:31 檢舉
我不熟angular啊,近期也沒想學。當然不會進來看。XD
你標題下D3我應該很快就看了。
Zaku iT邦新手 4 級 ‧ 2018-10-05 14:08:10 檢舉
XD原來如此,因為不知道採到雷,stackoverflow又剛好有找到有人問,想說應該是agular的問題

1 個回答

0
froce
iT邦大師 5 級 ‧ 2018-10-03 05:34:36
最佳解答

不會動的:
https://jsbin.com/ruvimuguzu/edit?html,console,output

會動的,懶得綁定data,所以就直接操作DOM:
https://jsbin.com/yafixegesa/edit?html,console,output
原因就是像我上面說的,D3 v4以後,不知道幹嘛把style改成不接受object。

Zaku iT邦新手 4 級 ‧ 2018-10-03 13:33:55 檢舉

所以是D3改版的問題,晚點來測一下,不吃object很怪阿,不是很冗長又難寫嗎

froce iT邦大師 5 級 ‧ 2018-10-03 14:04:32 檢舉

所以我才說不知道發啥瘋。
我之前在學D3的時候也是踩到一堆升級的雷。

而且最慘的是,踩到雷,console還不會報錯...

Zaku iT邦新手 4 級 ‧ 2018-10-05 14:08:50 檢舉

這太雷了吧..沒考慮用其他的?就是沒暴錯才不覺得是他的問題

我要發表回答

立即登入回答