मैं drewmoore के suggestiong eit के बारे में यकीन नहीं है उसके। यह मेरे लिए काम नहीं लग रहा था।
मुझे जारी रखने के लिए दो सुझाव मिल गए हैं।
सर्वोत्तम उत्तर
पहले आर्लो के जवाब का एक परिशिष्ट है। जब मैंने मूल रूप से इस टिप्पणी को लिखा, तो मुझे काम के जवाब में अरलो का जवाब नहीं मिला। अब मुझे समझ में आया क्यों। मैं डी 3-पदानुक्रम पैकेज का उपयोग करने की कोशिश कर रहा था। तो स्थापित करने:
npm install d3 --save
npm install @types/d3 --save-dev
npm install @types/d3-hierarchy --save-dev
और फिर मॉड्यूल इस तरह का उपयोग कर:
import * as d3 from "d3";
d3.hierarchy(blah);
और फिर यह शिकायत करेगा कि यह d3.hierarchy सदस्य के बारे में पता नहीं था। अब मैं समझता हूं कि मुझे उस वस्तु का उपयोग करना होगा (मुझे नहीं पता कि यह पहले क्यों पंजीकृत नहीं हुआ था)। तो, अद्यतन:
import * as d3 from "d3";
import * as d3Hierarchy from "d3-hierarchy";
d3Hierarchy.hierarchy(blah);
मूल उत्तर
क्या केवल जवाब मैं अब तक d3-ng2-service लिंक पर स्थित मॉड्यूल उपयोग कर रहा है मिल गया है लगता है। यह एक अच्छा स्विच नहीं है, लेकिन यह आपको अपने कोणीय 2 प्रोजेक्ट में d3v4 का उपयोग करने की अनुमति देता है।
रीडमी एक अंश कैसे एक कोणीय 2 घटक में इसका इस्तेमाल करने के नीचे पाया जा सकता है:
import { Component, OnInit, ElementRef } from '@angular/core';
import { D3Service, D3, Selection } from 'd3-ng2-service'; // <-- import the D3 Service, the type alias for the d3 variable and the Selection interface
@Component({
selector: 'app-test-d3',
templateUrl: 'test-d3.component.html',
styleUrls: ['test-d33.component.css']
})
export class TestD3Component implements OnInit {
private d3: D3; // <-- Define the private member which will hold the d3 reference
private parentNativeElement: any;
constructor(element: ElementRef, d3Service: D3Service) { // <-- pass the D3 Service into the constructor
this.d3 = d3Service.getD3(); // <-- obtain the d3 object from the D3 Service
this.parentNativeElement = element.nativeElement;
}
ngOnInit() {
let d3 = this.d3; // <-- for convenience use a block scope variable
let d3ParentElement: Selection<any, any, any, any>; // <-- Use the Selection interface (very basic here for illustration only)
// ...
if (this.parentNativeElement !== null) {
d3ParentElement = d3.select(this.parentNativeElement); // <-- use the D3 select method
// Do more D3 things
}
}
}
मुझे इस समय कोई रास्ता नहीं मिला है, इसलिए मैंने किसी भी प्रकार के साथ d3v4 ऑब्जेक्ट को परिभाषित किया है और मेरे मजेदार तरीके से चला गया है। जब वे समाप्त हो जाएंगे तो बोर्ड ऑन-बोर्ड लाएंगे। लेकिन अगर कोई रास्ता है, तो मैं भी जानना चाहता हूं। –
आपने यह कैसे किया? मेरे पास वर्तमान में 'डी 3' से डी 3 के रूप में 'आयात * है;' लेकिन 'आयात * डी 3 के रूप में: किसी भी' डी 3 'से; 'काम नहीं करता है ... – TommyF
मैं अपने स्वयं के स्क्रिप्ट तत्व में पृष्ठ में d3 लोड करता हूं, फिर पकड़ लेता हूं यह एक विस्तारित कोणीय का उपयोग कर मेरे नियंत्रक में। IWindowService जो सिर्फ 'd3: any' संपत्ति जोड़ता है। –