2012-11-23 47 views
11

Tôi cố gắng để tích hợp D3 với phi tiêu: Mã của tôi đến thời điểm này là như sau:Dart js interop với 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; }); 

    }); 

Bất cứ khi nào tôi chạy này trong dartium tôi nhận được ngoại lệ sau đây: Ngoại lệ: Một chức năng phải được chuyển đổi thành một cuộc gọi lại trước khi nó có thể được tuần tự hóa. Làm cách nào để chuyển đổi chức năng ẩn danh (d) thành gọi lại?

+4

Hãy nhớ chấp nhận câu trả lời đúng! –

Trả lời

4

Vì gói : js> 0.2.0Callbackjs.scoped không còn cần thiết nữa.

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