Javascript 在极坐标图的心跳中引入延迟
我有一个要求,即代码的一部分构成一个堆栈:Javascript 在极坐标图的心跳中引入延迟,javascript,jquery,css,angularjs,Javascript,Jquery,Css,Angularjs,我有一个要求,即代码的一部分构成一个堆栈: $scope.values = items; 代码的另一部分监视此集合: scope.$watchCollection('values', function(values) { if(Array.isArray(values)) { //only if it's an array, draw and watch all its items for chang
$scope.values = items;
代码的另一部分监视此集合:
scope.$watchCollection('values', function(values) {
if(Array.isArray(values)) {
//only if it's an array, draw and watch all its items for changes
draw(values);
for(var key in values) {
if(values.hasOwnProperty(key)) {
scope.$watch("values['" + key + "']", function(val, oldVal) {
updateValue(val.id);
}, true); }
}
}
});
updateValue函数负责动画:
var updateValue = function(id) {
//when an item changes, trigger the change animation
var sectElement = svg.select(".arc-section-" + id);
//go to highlighted mode
sectElement.transition()
.duration(changeValueTransitionSpeed)
.call(drawSectionHighlighted);
//after highlighted mode transition is done, go back to normal mode
sectElement
.transition()
.delay(changeValueTransitionSpeed)
.duration(changeValueTransitionSpeed)
.call(drawSection);
}
一旦值集合被填充,updateValue就会执行,动画就会开始。此时,当新事件到达时,动画每3秒启动一次。我想控制动画的时间,它可以根据参数动态决定
我已经试过setTimeout()和setInterval()。你试过$timeout吗?$timeout有什么区别?我已经尝试过这样的方法:$window.timeout(function(){$scope.values=items;},1000};想法是延迟堆栈对$scope.values的赋值,这反过来又会延迟代码另一端对它的监视..对我不起作用您可以引用这个答案$timeout不起作用