我不明白人们使用angular $ digest()。 你能给我一些简单的例子吗?
答案 0 :(得分:3)
基本上,$digest()
触发Angular中的摘要周期(eval观察者和渲染视图)。你应该避免自己打电话,而是选择$applyAsync()
。当您以异步方式更新某些数据并想要注意Angular有关这些更改时,这非常有用。
为了得到一个很好的解释,我建议这篇博文: http://www.sitepoint.com/understanding-angulars-apply-digest/
答案 1 :(得分:0)
如果你有一个回调附加到角度范围之外的事件; angular不知道该函数何时运行/结束,因此摘要周期永远不会运行。 (例如指令中的mouseevents)
app.directive('tooltip',function(){
return{
restrict: 'A',
link: function(scope,element,attr){
element.bind('mouseover',function(e){
scope.setStyle(e);
});
}
}
});
$scope.setStyle = function(e){
$scope.style = {
position: 'absolute',
// some other styles
};
$scope.$apply();
};
调用$ digest或$ apply告诉angular更新绑定并触发任何手表。
我希望它有所帮助。