美文网首页
面试趟过的坑之angular脏值检测机制

面试趟过的坑之angular脏值检测机制

作者: 前端大魔王 | 来源:发表于2016-09-28 22:29 被阅读0次

    1,什么时候会$digest

    • DOM事件,譬如用户输入文本,点击按钮等。(ng-click)
    • XHR响应事件 ($http)
    • 浏览器Location变更事件 ($location)
    • Timer事件($timeout, $interval)
    • 执行$digest()或$apply()
      如:
    <div ng:app ng-controller="Ctrl"> {{message}}</div>
    function Ctrl($scope) { 
    $scope.message = "Waiting 2000ms for update";
     setTimeout(function () {
     $scope.message = "Timeout called!"; // AngularJS unaware of update to $scope
    }, 2000);}
    

    页面上的message没有更新,因为setTimeout为原生的方法,$timeout为对应的angular封装,内部调用了$apply(),所以会运行脏值检测。心好累_
    最后付张图

    1.jpg
    不是一段时间后的循环

    相关文章

      网友评论

          本文标题:面试趟过的坑之angular脏值检测机制

          本文链接:https://www.haomeiwen.com/subject/rxdkyttx.html