Angular 2μ D3.jsλ₯Ό μ¬μ©νκ³ μμ΅λλ€. λΉ¨κ°μ μ¬κ°νμ νμνκ³ μΆμ΅λλ€.
style.css νμΌμ μ€νμΌμ λ£μ κ²½μ°μλ§ μλν©λλ€. μ΄ plunkrλ₯Ό νμΈνμμμ€
styles: []
κ΅¬μ± μμμ μ€νμΌμ λ£μΌλ©΄ μλνμ§ μμ΅λλ€. μ΄ plunkrλ₯Ό νμΈνμμμ€
μ€ν μ€λ²ν λ‘λ₯Ό μ°Έμ‘°νμμμ€.
import {Component} from 'angular2/core'
@Component({
selector: 'my-app',
providers: [],
styles: [`
/*this does not work*/
.bar {
fill: red;
}
`],
template: `
<div>
<svg class="chart"></svg>
</div>
`,
directives: []
})
export class App {
constructor() {}
ngOnInit() {
this.draw();
}
draw() {
let data = [{name: 'A', value: 1}];
let width = 400, height = 200;
let x = d3.scale.ordinal().rangeRoundBands([0, width]);
let y = d3.scale.linear().range([height, 0]);
let chart = d3.select(".chart")
.attr("width", width)
.attr("height", height)
.append("g");
x.domain(data.map(function(d) { return d.name; }));
y.domain([0, d3.max(data, function(d) { return d.value; })]);
chart.selectAll(".bar")
.data(data)
.enter().append("rect")
.attr("class", "bar")
.attr("x", function(d) { return x(d.name); })
.attr("y", function(d) { return y(d.value); })
.attr("height", function(d) { return height - y(d.value); })
.attr("width", x.rangeBand());
}
}
κ·Έκ²μ λμμΈμ μν κ²μ λλ€. Angularλ κ΅¬μ± μμμ κ³ μ ν ν΄λμ€ μ΄λ¦μ μΆκ°νκ³ μΆκ°λ μ€νμΌμ΄ μΆκ°λ κ΅¬μ± μμμλ§ μ μ©λλλ‘ λ€μ μμ±ν©λλ€.
D3λ Angulars μ§μ μμ΄ λμ μΌλ‘ HTMLμ μμ±νκ³ Angularλ μμ±λ HTMLμ μ€νμΌμ μ μ©νκΈ° μν΄ ν΄λμ€λ₯Ό μ μ©ν μ μμ΅λλ€.
μ§μ μ HTML νμΌμ μ€νμΌμ μΆκ°νλ©΄ Angularλ μ€νμΌμ λ€μ μμ±νμ§ μκ³ μΆκ°λ λμ°λ―Έ ν΄λμ€κ° μ μ©λμ§ μμ΅λλ€.
encapsulation: ViewEncapsulation.None
Angularλ μ΄ μ¬μμ±μ νμ§ μμΌλ―λ‘ κ²°κ³Όλ index.html
μ HTMLμ μΆκ°νλ κ²κ³Ό μ μ¬ν©λλ€.
λλ μ΅κ·Όμ λμ
λ μλμ° νΌμ΄μ± CSS κ²°ν©μ >>>
, /deep/
λ° ::shadow
λ₯Ό μ¬μ©ν μ μμ΅λλ€. http://stackoverflow.com/a/36225709/217408 λ μ°Έμ‘°νμμμ€.
@zoechi μ λ§ κ°μ¬ν©λλ€!! κ·Έκ²μ μλ²½νκ² μλν©λλ€!
λ€λ₯Έ μ¬λλ€μ κ²½μ° @zoechi μ μ루μ μ λν μμΈν λ΄μ©μ μ¬κΈ° λ₯Ό νμΈνμΈμ.
μ΄ λ¬Έμ λ νλμ΄ μμ΄ μλμΌλ‘ μ κ²Όμ΅λλ€.
μ μ¬νκ±°λ κ΄λ ¨λ λ¬Έμ κ° λ°μνλ©΄ μ λ¬Έμ λ₯Ό μ μΆνμμμ€.
μλ λν μ κΈ μ μ± μ λν΄ μμΈν μμ보μΈμ.
_μ΄ μμ μ λ΄μ μν΄ μλμΌλ‘ μνλμμ΅λλ€._
κ°μ₯ μ μ©ν λκΈ
κ·Έκ²μ λμμΈμ μν κ²μ λλ€. Angularλ κ΅¬μ± μμμ κ³ μ ν ν΄λμ€ μ΄λ¦μ μΆκ°νκ³ μΆκ°λ μ€νμΌμ΄ μΆκ°λ κ΅¬μ± μμμλ§ μ μ©λλλ‘ λ€μ μμ±ν©λλ€.
D3λ Angulars μ§μ μμ΄ λμ μΌλ‘ HTMLμ μμ±νκ³ Angularλ μμ±λ HTMLμ μ€νμΌμ μ μ©νκΈ° μν΄ ν΄λμ€λ₯Ό μ μ©ν μ μμ΅λλ€.
μ§μ μ HTML νμΌμ μ€νμΌμ μΆκ°νλ©΄ Angularλ μ€νμΌμ λ€μ μμ±νμ§ μκ³ μΆκ°λ λμ°λ―Έ ν΄λμ€κ° μ μ©λμ§ μμ΅λλ€.
encapsulation: ViewEncapsulation.None
Angularλ μ΄ μ¬μμ±μ νμ§ μμΌλ―λ‘ κ²°κ³Όλindex.html
μ HTMLμ μΆκ°νλ κ²κ³Ό μ μ¬ν©λλ€.λλ μ΅κ·Όμ λμ λ μλμ° νΌμ΄μ± CSS κ²°ν©μ
>>>
,/deep/
λ°::shadow
λ₯Ό μ¬μ©ν μ μμ΅λλ€. http://stackoverflow.com/a/36225709/217408 λ μ°Έμ‘°νμμμ€.