Angular: Π‘Ρ‚ΠΈΠ»ΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ для D3.js Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² angular 2

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 25 ΠΌΠ°Ρ€. 2016  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: angular/angular

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Angular 2 ΠΈ D3.js. Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ красный ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ.

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли я ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽ стили Π² Ρ„Π°ΠΉΠ» style.css . ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ этот ΠΏΠ»Π°Π½ΠΊΡ€

Когда я ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽ свои стили Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ styles: [] , ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ этот ΠΏΠ»Π°Π½ΠΊΡ€

Π‘ΠΌ. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка .

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 динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ HTML Π±Π΅Π· знания Angular, Π° Angular Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ классы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ стили ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ ΠΊ сгСнСрированному HTML.

Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ стили Π² HTML-Ρ„Π°ΠΉΠ» Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°, Angular Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ стили, ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ классы Π½Π΅ вступят Π² силу.

Π‘ encapsulation: ViewEncapsulation.None Angular Π½Π΅ выполняСт эту ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ, поэтому Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ добавлСнию HTML Π² index.html .

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π΄Π°Π²Π½ΠΎ прСдставлСнныС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρ‹ CSS >>> , /deep/ ΠΈ ::shadow . Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ http://stackoverflow.com/a/36225709/217408 .

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ. Angular добавляСт ΠΈΠΌΠ΅Π½Π° классов, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈ пСрСписываСт Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ стили, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹.

D3 динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ HTML Π±Π΅Π· знания Angular, Π° Angular Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ классы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ стили ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ ΠΊ сгСнСрированному HTML.

Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ стили Π² HTML-Ρ„Π°ΠΉΠ» Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°, Angular Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ стили, ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ классы Π½Π΅ вступят Π² силу.

Π‘ encapsulation: ViewEncapsulation.None Angular Π½Π΅ выполняСт эту ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ, поэтому Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ добавлСнию HTML Π² index.html .

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π΄Π°Π²Π½ΠΎ прСдставлСнныС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρ‹ CSS >>> , /deep/ ΠΈ ::shadow . Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ http://stackoverflow.com/a/36225709/217408 .

@zoechi большоС спасибо!! Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ!

Для Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ @zoechi , поТалуйста, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ здСсь

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° автоматичСски Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈΠ·-Π·Π° бСздСйствия.
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, создайтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ссли Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ ΠΈΠ»ΠΈ связанной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ нашСй ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ автоматичСской Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² .

_Π­Ρ‚ΠΎ дСйствиС Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ автоматичСски Π±ΠΎΡ‚ΠΎΠΌ._

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ