我正在尝试将D3与dart集成:我的代码到此为止如下:
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; });
});
Run Code Online (Sandbox Code Playgroud)
每当我在dartium中运行它时,我会得到以下异常:异常:必须先将函数转换为Callback才能序列化.如何将匿名函数(d)转换为回调?
浏览器:Dartium 版本 34.0.1847.0 (258268)
我想将 D3 嵌入到 Polymer.dart 元素中,我才刚刚开始理清 Dart 和 JS 的互操作方式。我首先使用 D3 的介绍性教程中的 HTML5/CSS3/JS 创建一个普通的 HTML 页面,该教程关于如何制作条形图以确保我的 D3 实现在 Dartium 中工作。
然后我将 D3 代码移动到自定义聚合物元素(如下所示)及其配套的 dart 源文件(未显示)中。如何指示 D3 在 shadow DOM 中执行其选择?
<!-- D3 code copied from: http://bost.ocks.org/mike/bar/ -->
<polymer-element name="dart-js">
<template>
<!-- D3 style -->
<style>
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}
</style>
<content>
<!-- D3 container -->
<div class="chart">inside dart-js shadow-root</div>
<!-- …Run Code Online (Sandbox Code Playgroud)