2016-01-12 4 views
0

Получение исключений в коде относительно данных картыОшибка в MeteorJS с помощью D3

Ошибка

Исключение в очереди задачи: TypeError: data.map не является функцией

var drawCircles = function (update) { 
    var data = parseInt(CarBeands.findOne().percent); 
    console.log(data); 
    **console.log(pie(data));** 
    var circles = svg.selectAll('.arc') 
     .data(data) 
     .enter() 
     .append("g") 
     .attr("class", "arc").append("path") 
     .attr("d", arc) 
     .attr("fill",function (d) {return color(d.data); }); 
    console.log(pie(data)); 
}; 

Метод

CarBeands.find().observe({ 
    added: function() { 
     x = CarBeands.find().fetch(); 
     x.forEach(function(perce){ 
      var san = parseInt(perce.percent); 
      console.log(san); 
      count += 1; 
     }) 
     drawCircles(true); 
    } 
}); 

В этом коде пирогом (данные), показывающие, что же ERROR

DataBase using MongoDB 
{ 
    "percent" : "65", 
}, 
{ 
    "percent" : "65", 
}, 
{ 
    "percent" : "65", 
} 

ответ

0

Ваш data одно значение здесь: вы запрашиваете один элемент и получить его значение с .percent.

map относится к массиву.

d3js обычно ожидает массив значений в качестве входных данных.

data.map() не является функцией, поскольку data не является массивом

Чтобы получить массив, вам нужно использовать

var data = MyCollection.find().fetch().map(function (item) {return item.percent}) 

Это поможет вам массив чисел процентов.

Смежные вопросы