gpt4 book ai didi

angularjs - AngularJS 中不同形式的 scope.$apply 有什么作用?

转载 作者:行者123 更新时间:2023-12-02 00:04:32 24 4
gpt4 key购买 nike

方法一

scope.tasks.pop(task);
scope.$apply();

方法二

scope.$apply(scope.tasks.pop(task));

方法三

scope.$apply(function()
{
scope.tasks.pop(task);
});

我的结果似乎在每种情况下都相同。我知道在修改“正常” Angular 之外的范围时,您必须调用 $apply 才能在数据绑定(bind)中获取更改。但我不明白 $apply 的各种形式以及为什么你可以不带参数调用它而不是在传递给 $apply 的函数中进行范围修改。

有什么区别,什么时候应该使用哪个?

最佳答案

为了更好地理解差异,请考虑 Angular 文档中 $apply 函数的以下伪代码 http://docs.angularjs.org/api/ng.$rootScope.Scope

function $apply(expr) {
try {
return $eval(expr);
} catch (e) {
$exceptionHandler(e);
} finally {
$root.$digest();
}
}

当您使用函数或表达式字符串作为参数调用它时,angular 可以正确处理从该函数抛出的错误并将它们转发给 $exceptionHandler 服务。在任何情况下,它都会在最后调用 $digest() 来更新绑定(bind)。

关于angularjs - AngularJS 中不同形式的 scope.$apply 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com