【发布时间】:2016-04-27 20:50:43
【问题描述】:
我正在用 D3 和 Angular 编写指令。我不确定为什么我一直收到Infinite $digest loop 错误,因为我没有看到对newValue 的任何重新分配。功能运行良好,但浏览器中恼人的错误让我想深入研究它。
指令代码如下:
scope.$watch('mode', function (newValue, oldValue) {
if (newValue !== oldValue) {
scope.triggerAnimation();
}
});
scope.triggerAnimation = function() {
var speed = 4;
var start = Date.now();
if (scope.mode === null) {
d3.timer(function() {
var angle = (Date.now() - start) * speed;
var transform = function(d, i) { return "rotate(" + angle / 50 + "," + centerX + "," + centerY + ")"; };
svg.selectAll(".sidenode, .sidenodeedge").attr("transform", transform);
if (scope.mode == null) {
return true;
} else {
return false;
}
});
scope.mode = 1;
} else {
scope.mode = null;
}
}
【问题讨论】:
标签: javascript angularjs d3.js