我在一个指令中有多个不同的 watch 语句,用于监视 scope
并在不同事件(窗口调整大小、表单提交等)上重新呈现 d3 指令
window.onresize = function() {
scope.$apply();
};
// Call render function on window resize
scope.$watch(function() {
return angular.element($window)[0].innerWidth;
}, function() {
scope.render(scope.data);
});
// Watch for data changes and re-render
scope.$watch('data', function() {
return scope.render(scope.data);
}, true);
问题是,我最终会为同一事件多次调用渲染。有什么办法可以将这三个不同的 $watches
合并成一个更简洁的结构吗?我猜想看 scope
也会看 scope
的 data
属性,但显然不是!这是为什么?
最佳答案
可能不是最好的解决方案,但可能会有所帮助。
underscorejs 的 throttle
接受一个函数和函数执行之间的最短时间,并返回一个函数,该函数最多每 wait
毫秒调用一次指定的函数。
_.throttle(func, wait, [options])
关于javascript - 合并多个 Angular scope watch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437263/