Angularjs[6] - $scrope 中 $apply 方法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div ng-app>
        <div ng-controller="firstController">
            {{date}}
        </div>
    </div>
    <script type="text/javascript" src="app/index.js"></script>
<script type="text/javascript" src="../../vendor/angular/angularjs.js"></script>
</body>
</html>
var firstController = function ($scope) {
    //$scope 作用域
    //申明一个model
    $scope.date = new Date();
    // setInterval(function () {
    //     //这里虽然变化,但是没有触发 脏检查
    //     $scope.date = new Date();
    // },1000)

    setInterval(function () {
        $scope.$apply(function () {
            $scope.date = new Date();
        })
    },1000)
};
  • 脏检查:将原对象复制一份快照,在某个时间,比较现在对象与快照的值,如果不一样就表明发生变化。
  • Angular 通过脏检查得知变量是否发上变化。

   Angular 脏检查 策略:

- 不会脏检查所有的对象,当对象被绑定到html中,这个对象添加为检查对象(wetcher)。

- 不会脏检查所有的属性,同样当属性被绑定后,这个属性会被列为检查的属性。

Angular程序初始化时,会将绑定的对象的属性添加为监听对象(watcher),也就是说一个对象绑定了N个属性,就会添加N个 watcher。

  • 手动触发脏检查:$apply 进入 angular context,然后通过 $digest 去触发脏检查,推荐给 $apply 参数,否则会检查该 $scope 里所有监听的属性。
  • 不建议直接调用 $digest() 属性,而应使用 $apply()。
时间: 2024-08-14 08:32:42

Angularjs[6] - $scrope 中 $apply 方法:的相关文章

Angularjs $scope 里面的$apply 方法 和 $watch 方法

Angularjs $scope 里面的$apply 方法 和 $watch 方法 学习要点:1. Angularjs $scope 里面的$apply 方法2. Angularjs $scope 里面的$watch 方法 1. Angularjs $scope 里面的$apply 方法$apply 方法作用:Scope 提供$apply 方法传播 Model 的变化$apply 方法使用情景:AngularJS 外部的控制器( DOM 事件.外部的回调函数如 jQuery UI 空间等)调用了

Angularjs[7] - $scrope 中 $watch 方法:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div ng-app> <div ng-controller="firstController"> <input type="

angularJS之$apply()方法

这几天,根据buddy指定的任务,要分享一点angular JS的东西.对于一个在前端属于纯新手的我来说,Javascript都还是一知半解,要想直接上手angular JS,遇到的阻力还真是不少.不过我相信,只要下功夫,即使是反人类的设计也不是什么大的问题.     Okay,废话不多说.为了弄明白angular JS为何物,我先是从Scope开始.那么什么是Scope呢?借用官方文档的一段话: "scope is an object that refers to the applicatio

angularjs $scope.$apply 方法详解

myApp.controller('firstController',function($scope,$interval){ $scope.date = new Date(); setInterval(function(){ $scope.$apply(function(){ scope.date = new Date(); }) },1000) }) Scope提供$watch方法监视Model的变化.Scope提供$apply方法传播Model的变化. AngularJS提供了一个非常酷的特

angularJS中$apply()方法详解

这篇文章主要介绍了angularJS中$apply()方法详解,需要的朋友可以参考下 对于一个在前端属于纯新手的我来说,Javascript都还是一知半解,要想直接上手angular JS,遇到的阻力还真是不少.不过我相信,只要下功夫,即使是反人类的设计也不是什么大的问题. Okay,废话不多说.为了弄明白angular JS为何物,我先是从Scope开始.那么什么是Scope呢?借用官方文档的一段话: 代码如下: "scope is an object that refers to the a

[转]angular之$apply()方法

这几天,根据buddy指定的任务,要分享一点angular JS的东西.对于一个在前端属于纯新手的我来说,Javascript都还是一知半解,要想直接上手angular JS,遇到的阻力还真是不少.不过我相信,只要下功夫,即使是反人类的设计也不是什么大的问题.     Okay,废话不多说.为了弄明白angular JS为何物,我先是从Scope开始.那么什么是Scope呢?借用官方文档的一段话: “scope is an object that refers to the applicatio

Scala 中apply方法的用法

Scala 是构建在 JVM 上的静态类型的脚本语言,而脚本语言总是会有些约定来增强灵活性.关于协议在Python中是挺多的,看看Python的对象协议,有很多很多,如果对Python的对象协议了解(不了解的可以点击此处)的比较深刻的话,其实scala的apply方法也是很好理解的,比如说 Scala 为配合 DSL 在方法调用时有这么一条约定: 在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号.如 "0 to 2",实际完整调用是 "0.

call 方法和 apply方法

1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. apply方法: 语法:apply([thisObj[,argArray]])

.call方法和.apply方法

.call 在方法后面加上.call.例: [].push.call(arr,"1","p") .call实现了.push方法的this指向([]-->arr),就相当于push方法作用与arr上了,后面的参数不变 .apply 在方法的后面加入.apply.例: [].push.apply(arr,["p","1"]) .apply方法实现了.push方法的this指向,使之作用于第一个参数arr上,把原先的参数用数组