加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

anglejs – 当角度观察循环或摘要循环完成时如何调用函数

发布时间:2020-12-17 08:07:23 所属栏目:安全 来源:网络整理
导读:在角度完成所有观看周期之后,是否有任何方式调用角色中的自定义功能。 需求 我的控制器里面有多个watch功能。现在,只有在所有观看功能以角度执行之后,我才想执行一个功能 摘要完成后,有几种方法可以注册回调。 使用$$ postDigest: $ scope。$$ postDige
在角度完成所有观看周期之后,是否有任何方式调用角色中的自定义功能。

需求
我的控制器里面有多个watch功能。现在,只有在所有观看功能以角度执行之后,我才想执行一个功能

摘要完成后,有几种方法可以注册回调。

使用$$ postDigest:
$ scope。$$ postDigest在当前$ digest循环完成后触发回调。

但是,在下一个摘要循环后,这只会运行一次。为了让它在每个摘要循环后运行,它与$ watch一起运行。这是基于代码示例given here

var hasRegistered = false;
$scope.$watch(function() {
  if (hasRegistered) return;
  hasRegistered = true;
  $scope.$$postDigest(function() {
    hasRegistered = false;
    fn();
  });
});

在一个摘要循环中,$ watch可以被多次触发,所以我们使用一个hasRegistered的标志来防止$$ postDigest回调被多次注册。
注意:$$ postDigest不会触发另一个摘要循环。所以对$$ postDigest中的$ scope的任何修改都不会反映在dom中。 $$意味着这是一个角色角色中的私有功能,所以功能不稳定,将来会发生变化。

使用$ timeout:

$timeout(function(){
 console.log("Running after the digest cycle");
},false);

这在当前的摘要循环完成后运行。注意:第三个参数设置为false以防止另一个摘要循环触发。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读