2012-11-23 26 views
11

Ich versuche, D3 mit Dart zu integrieren: Mein Code zu diesem Punkt ist wie folgt:Dart js Interop mit D3

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; }); 

    }); 

Immer, wenn ich dies in dartium laufen bekomme ich die folgende Ausnahme: Ausnahme: Eine Funktion muss in einen Callback konvertiert werden, bevor er serialisiert werden kann. Wie kann ich die anonyme Funktion (d) in einen Rückruf konvertieren?

+4

Denken Sie daran, die richtige Antwort zu akzeptieren! –

Antwort

4

Als Paket: js> 0.2.0Callback und js.scoped werden nicht mehr benötigt.

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); 
}