13 votes

Dart js interop with D3

Je tente d'intégrer D3 avec Dart : Mon code jusqu'à présent est le suivant :

import 'dart:html';
import 'package:js/js.dart' as js;

void main() {
   js.scoped(() {
     var dee3 = js.context.d3; 
     var dataset = js.array([ 5, 10, 15, 20, 25 ]);
     dee3.select("body").selectAll("p")
    .data(dataset)
    .enter()
    .append("p")
    .text(function(d) { return d; });

  });

Chaque fois que j'exécute cela dans dartium, j'obtiens l'exception suivante : Exception : Une fonction doit être convertie en un rappel (callback) avant de pouvoir être sérialisée. Comment puis-je convertir la fonction anonyme (d) en un rappel (callback) ?

5voto

Alexandre Ardhuin Points 16297

Comme package:js > 0.2.0, les Callback et js.scoped ne sont plus nécessaires.

import 'dart:html';
import 'package:js/js.dart' as js;

void main() {
  var dee3 = js.context.d3; 
  var dataset = js.array([ 5, 10, 15, 20, 25 ]);
  dee3.select("body").selectAll("p")
    .data(dataset)
    .enter()
    .append("p")
    .text((d, i, context) => d);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X