zoukankan      html  css  js  c++  java
  • AngularJS中$apply

    $apply$scope下的特性,传播model的变化。下面的例子两秒之后控制台会显示出已经更新的model, 然而, view 并没有更新。$digest循环不会只运行一次。在当前的一次循环结束后,它会在执行一次循环用来检查是否有model发生了变化。$digest循环会持续知道model不再发生变化。所以不要在监听中使用脏循环。$digest循环最少也会运行两次。

    /***
     * 关于 apply digest
     * 两秒之后控制台会显示出已经更新的model, 然而, view 并没有更新。
     * 原因:我们没有使用 $apply()方法。
     * $digest循环不会只运行一次。在当前的一次循环结束后,它会在执行一次循环用来检查是否有model发生了变化。
     * 这就是脏检查,它用来处理在listener函数被执行时可能引起的model变化。
     * $digest循环会持续知道model不再发生变化。
     * 所以不要在监听中使用脏循环。
     * $digest循环最少也会运行两次。
     */
    app.controller("messageController",["$scope", "$timeout",function ($scope, $timeout) {
        $scope.getMessage  = function () {
            $timeout(function () {
                $scope.$apply(function () {
                    $scope.message = "三秒后见";
                });
                console.log("message:" + $scope.message);
            }, 2000);
        };
        $scope.getMessage();
    }]);
    
  • 相关阅读:
    负环判断模版
    计蒜客NOIP2017提高组模拟赛(四)day1
    NOIP2014-10-30模拟赛
    树链剖分模版
    2014-10-30NOIP复习题1
    NOIP2014-5-17模拟赛
    NOIP2014-5-10模拟赛
    NOIP2014-3-15模拟赛
    HDU1556Color the ball
    HDU1166敌兵布阵
  • 原文地址:https://www.cnblogs.com/liubeimeng/p/6840671.html
Copyright © 2011-2022 走看看