2016-12-08 4 views
6

मुझे डी 3 वी 4 की पूरी तरह से अक्षम महसूस करने की क्षमता पसंद है। मैं अपने अन्य मॉड्यूल के साथ वेबपैक में अपना कस्टम बंडल बनाने का तरीका नहीं समझ सकता ... इसलिए इसके बजाय मैं केवल वेनिला डी 3 बंडल लेने की कोशिश कर रहा हूं और इसमें बहु-चयन क्षमता जोड़ रहा हूं।आप डी 3-चयन-बहु को डी 3 में कैसे जोड़ते हैं?

मैं अपने घटकों के बीच d3 वस्तु इंजेक्षन निर्भरता कोणीय 2 में एक 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: Uncaught (in promise): Error: Error in ./ListingComponent class ListingComponent_Host - inline template:0:0 caused by: this.d3.select(...).styles is not a function TypeError: this.d3.select(...).styles is not a function

मैं भी कोई लाभ नहीं हुआ Object.assign के साथ दो ojects विलय की कोशिश की है।

मैं क्या गलत कर रहा हूं? यह शायद कुछ बेवकूफ मामूली है।

+0

attrs() ... के साथ एक ही समस्या को हल करें। –

उत्तर

-1

d3.styles नामक कोई फ़ंक्शन नहीं है। कृपया इसे आज़माएं।

this.d3.select("body").style("background-color", "#F00") 
         .style("color", "#00F"); 
+2

डी 3 चयन-बहु में 'शैलियों' है। ओपी का सवाल बिल्कुल इसके बारे में है। –