我喜欢d3 V4让我觉得完全无能的能力。我似乎无法弄清楚如何在webpack中创建我自己的自定义包以及我的其他模块......所以我只是尝试使用vanilla d3包并为其添加多选功能。
我在Angular 2中创建了一个d3服务,依赖注入我的组件之间的d3对象。
import {Injectable} from "@angular/core";
import * as d3 from "d3";
import "d3-selection-multi";
export type D3 = typeof d3;
@Injectable()
export class D3Service {
constructor() {
}
private d3: D3 = d3;
getD3 = () => {
return this.d3;
};
}
一切都很好,直到我尝试访问多种选择功能,例如使用.attrs
let test = this.d3.select("body").styles({
"background-color": "#F00",
"color": "#00F"
});
我的浏览器抱怨它不知道.attrs是什么。
error_handler.js:47 EXCEPTION:未捕获(在承诺中):错误:错误 ./ListingComponent类ListingComponent_Host - 内联模板:0:0 引起的:this.d3.select(...)。styles不是函数TypeError: this.d3.select(...)。styles不是函数
我也试过用Object.assign
合并这两个对象无济于事。
我做错了什么?这可能是愚蠢的事情。
答案 0 :(得分:-2)
没有名为d3.styles的函数。请试试这个。
this.d3.select("body").style("background-color", "#F00")
.style("color", "#00F");