2016-04-08 3 views
0

Я пытаюсь отобразить верхнее значение, найденное crossfilter в dc.js, но я получаюНевозможно отобразить наибольшее значение при использовании crossfilter.js

неперехваченного TypeError: _chart.group (...). значение не является функцией

Любая помощь?

Это мой код

var ndx = crossfilter(projectsJson); 
var highPriceDim = ndx.dimension(function(d) { return d.High; }); 
var highGrp = highPriceDim.top(1); 
console.log(highGrp); 

var highGrpND = dc.numberDisplay("#max-price-nd"); 
highGrpND.group(highGrp) 
    .formatNumber(d3.format("d")) 
    .valueAccessor(function(d){return d ; }) 
    .formatNumber(d3.format(".4f")); 

Спасибо за любую помощь

ответ

0

highGrp является массивом. Вместо этого попробуйте highGrpND.group (highGrp [0]).

+0

Это дает мне ту же ошибку. – user1463152

+0

О, верно, потому что значение все еще не функция, просто число. Вам нужно создать поддельную группу. Взгляните на часто задаваемые вопросы DC.js, в которых объясняется, как это сделать. –

+0

Нет, мне это не удается. Большое спасибо за помощь. – user1463152

0

Вы должны быть в состоянии просто сделать

highGrpND.group(highPriceDim.group()) 

с numberDisplay будет искать либо value метод, или если это невозможно, возьмите .top(1)

https://github.com/dc-js/dc.js/blob/develop/src/number-display.js#L81

(который является своеобразной грязный дизайн, но эй, если он работает ...)

Это лучше, чем вычисление верхней (1) во время настройки, так как он будет вычисляться каждый раз, когда диаграммы будут нарисованы, а не только один раз, что, вероятно, вы хотите.