使用D3的MeteorJS出错

时间:2016-01-12 07:48:34

标签: javascript mongodb meteor meteor-blaze

在有关地图数据的代码中获取异常

错误

排队任务中的​​异常: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",
}

1 个答案:

答案 0 :(得分:0)

您的data在此处是单个值:您获取一个元素并使用.percent获取其值。

map适用于数组。

d3js通常需要一组值作为输入。

data.map()不是函数,因为data不是数组

要获取阵列,您需要使用

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

这将为您提供数字百分比数组。