2017-03-15 7 views
6

के रूप में विज़ुअलाइज़ेशन का उपयोग करके मैं एक डी 3 कॉस्टम चार्ट पर चयनकर्ता के रूप में विज़ुअलाइजेशन का उपयोग करने का प्रयास कर रहा हूं। मैं यहां एसडीके दस्तावेज का पालन कर रहा हूं, और मैं अपना उदाहरण काम नहीं कर सकता।Microstrategy एक चयनकर्ता डी 3 कॉस्टम चार्ट

मूल रूप से मैं "मुझे" var घोषित करके "फ़िल्टर के रूप में उपयोग" विकल्प सक्षम करके तारांकित करता हूं।

var g = d3.select(this.domNode).append("svg") 
    .attr("width", width + margin.left + margin.right) 
    .attr("height", height + margin.top + margin.bottom) 
    .append("g") 
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")") 
    .on("click", function(d) { 
     if (event.target.classList.contains('bar')) { 
      me.clearSelections(); 
      me.endSelections(); 
      return true; 
     } else { 
      return true; 
     } 
    }); 

जब डेटा प्राप्त करने मैं hasSelection विशेषता का उपयोग:

var data = this.dataInterface.getRawData(mstrmojo.models.template.DataInterface.ENUM_RAW_DATA_FORMAT.TREE, { 
    hasSelection: true 
}).children; 

और जब जोड़ने

var me = this; 
this.addUseAsFilterMenuItem(); 

तब, जब डी svg तत्व जोड़कर, मैं स्पष्ट और अंत selecion तरीके जोड़ मेरे सलाखों पर "लागू चयन" विधि:

g.selectAll(".bar") 
.data(data) 
.enter() 
.append("rect") 
.attr("class", "bar") 
.attr("x", function(d) { 
    return x(d.name); 
}) 
.attr("y", function(d) { 
    return y(d.value); 
}) 
.attr("height", function(d) { 
    return height - y(d.value); 
}) 
.attr("width", x.rangeBand()) 
.style("fill", function(d) { 

}) 
.on("click", function(d) { 
    me.applySelection(d.selection); 
}); 

लेकिन यह काम नहीं करता है। मैं बार क्लिक घटना पर डी। चयन को कंसोल करने का प्रबंधन करता हूं, मैं इसे अपरिभाषित करता हूं।

क्या कोई मुझे इस पर हाथ दे सकता है?

धन्यवाद।

उत्तर

2

मैं यह पता लगाने में सक्षम था कि इस पर कई घंटे खर्च करने के बाद, मेरे कोड में क्या गलत था। चयन विधि को इस तरह कहा जाना चाहिए:

.on("click", function(d, i) { 
    me.applySelection(data[i].attributeSelector); 
    return true; 
}); 
संबंधित मुद्दे