Angular: D3.js ꡬ성 μš”μ†Œμ˜ μŠ€νƒ€μΌμ΄ 각도 2에 ν‘œμ‹œλ˜μ§€ μ•ŠμŒ

에 λ§Œλ“  2016λ…„ 03μ›” 25일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: angular/angular

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 도 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

λͺ¨λ“  3 λŒ“κΈ€

그것은 λ””μžμΈμ— μ˜ν•œ κ²ƒμž…λ‹ˆλ‹€. 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 의 μ†”λ£¨μ…˜μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ μ—¬κΈ° λ₯Ό ν™•μΈν•˜μ„Έμš”.

이 λ¬Έμ œλŠ” ν™œλ™μ΄ μ—†μ–΄ μžλ™μœΌλ‘œ μž κ²ΌμŠ΅λ‹ˆλ‹€.
μœ μ‚¬ν•˜κ±°λ‚˜ κ΄€λ ¨λœ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ μƒˆ 문제λ₯Ό μ œμΆœν•˜μ‹­μ‹œμ˜€.

μžλ™ λŒ€ν™” 잠금 μ •μ±… 에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄μ„Έμš”.

_이 μž‘μ—…μ€ 봇에 μ˜ν•΄ μžλ™μœΌλ‘œ μˆ˜ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€._

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰