【发布时间】:2016-09-04 15:23:32
【问题描述】:
我一直在尝试使用 Redis Pub/Sub 系统、Node js 和 D3 在地图上绘制州名。 问题是当我第一次在 Redis 通道上输入一个状态时,它被完美地绘制,但是当我输入第二个状态时,什么也没有发生。由于我是 D3.js 的新手,因此无法找出问题所在。 任何帮助将不胜感激。谢谢。
d3.json("india-states.json", function (json) {
india.selectAll("path")
.data(json.features)
.enter().append("path")
.attr("d", path);
var socket = io();
socket.on('tags', function(data){
console.log(data.message1);
india.selectAll("text")
.data(json.features)
.enter()
.append("text")
.attr("fill", "black")
.attr("transform", function(d) {
console.log(data.message1 + "Second Time");
var centroid = path.centroid(d);
return "translate(" + centroid[0] + "," + centroid[1] + ")"
})
.attr("text-anchor", "middle")
.attr("dy", ".35em")
.style('fill', 'white')
.text(function(d) {
console.log("2");
if (d.id == data.message1) {
console.log("1");
return data.message1;
}
});
});
});
我尝试探索我的代码,发现它每次都能正确获取状态名称。但只有在第一次尝试时,州名才会在
console.log(data.message1);
在所有其他情况下,我只得到一个控制台输出,即“console.log(data.message1);”
【问题讨论】:
标签: javascript node.js d3.js redis