我正在画一个 d3 甜甜圈。现在我想在数据库中添加与条目一样多的甜甜圈。如果我向数据库添加内容,自动更新将失败。我必须在浏览器中重新加载我的代码 - 然后我会看到新的甜甜圈。Meteor.autorun 不会自动更新吗?代码是:
Template.donuts.rendered = function (){
var self = this;
self.node = self.find("p");
// Data
var dataset = {
apples: [2, 2, 2, 2, 2]
};
//Width and height
var width = 100,
height = 100,
radius = Math.min(width, height) / 2;
// render
self.handle = Meteor.autorun(function () {
var color = d3.scale.category10();
var pie = d3.layout.pie()
.sort(null);
var arc = d3.svg.arc()
.innerRadius(radius - 20)
.outerRadius(radius - 5);
var svg = d3.select(self.node).append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
var path = svg.selectAll("path")
.data(pie(dataset.apples))
.enter().append("path")
.attr("fill", function(d, i) { return color(i); })
.attr("d", arc);
});
}; //Template.donuts
它通过车把调用
<template name="donuts">
{{#each nodes}}
<p></p>
{{/each}}
</template>
我究竟做错了什么。感谢您的时间。