如果有人能提供任何可以帮助我破解面试的真实例子,我将不胜感激。
答案 0 :(得分:1)
这是源代码
function $apply(expr) {
try {
return $eval(expr);
} catch (e) {
$exceptionHandler(e);
} finally {
$root.$digest();
}
}
$ apply将确保范围值中的所有更改都已被吸收,而$ apply将评估它将调用$ digest函数的所有表达式,如源代码中所示。
$ digest处理当前范围及其子项的所有观察者。因为观察者的监听器可以改变模型,所以$ digest()不断调用观察者,直到不再有听众为止。
如果您的应用程序中有任何表达式需要在摘要周期之前进行评估,那么您应该使用$ apply else如果您只想应用更改,那么您可以使用$ digest。
答案 1 :(得分:1)
区别在于$ apply将从根目录触发摘要周期,如果你调用$ digest,它将从它调用的任何范围触发。