
构建自己的AngularJS
F_AA
Don’t code blindfolded.
展开
-
构建自己的AngularJS - 作用域和Digest(三)
作用域第一章 作用域和Digest(三)$eval - 在当前作用域的上下文中执行代码Angular有多种方式让你在当前作用域的上下文中执行代码。最简单的是$eval。传入一个函数当做其参数,然后将当前的作用域作为参数传给该函数,并执行它。然后它返回该函数的执行结果。$eval还有第二个可选的参数,它仅仅是被传递给将要执行的函数。有几个单元测试展示了我们如何使用$eval:test/scope_sp翻译 2016-04-04 11:38:02 · 1502 阅读 · 0 评论 -
构建自己的AngularJS - 作用域和Digest(二)
作用域第一章 作用域和Digest(二)放弃一个不稳定的Digest在我们当前的实现中有一个明显的遗漏:如果发生了两个监控函数互相监控对方的变化的情况会如何?也就是,万一状态永远不能稳定呢?就像下面的测试案例展示的情况:test/scope_spec.jsit("gives up on the watchers after 10 iterations", function(){ scope.翻译 2016-03-31 17:10:37 · 1191 阅读 · 3 评论 -
构建自己的AngularJS - 作用域和Digest(一)
作用域第一章 作用域和Digest(一)Angular作用域是简单javascript对象,因此你可以像对其他对象一样添加属性。然而,他们也有一些额外的功能,用于观测数据结构的变化。这种观察能力是使用脏值检查在digest循环中运行来实现的。这就是我们这一章将要实现的内容。作用域对象Scope的创建是通过在Scope构造函数之前加入new关键字来创建的。这样会产生一个简单javascript对象。让翻译 2016-03-31 17:09:59 · 1144 阅读 · 0 评论 -
构建自己的AngularJS - 作用域
作用域代码托管在github:https://github.com/paradisefj/my-angular我们从AngularJS最核心的模块开始构建AngularJS的实现:作用域。作用域的作用有:在控制器和视图之间共享数据在应用的不同部分之间共享数据广播并监听事件监控数据变化在以上所有的使用场景中,最后一个可以说是最有意思的。Angular作用域实现了一种叫做脏值检查(dirty-翻译 2016-03-31 17:09:09 · 733 阅读 · 0 评论 -
创建自己的AngularJS - 作用域继承(一)
作用域作用域继承(一)Angular作用域继承机制直接建立在Javascript原型继承基础上,并在其根部加入了一些内容。这意味着当你理解了Javascript原型链后,将对Angular作用域继承有深入了解。根作用域到目前为止,我们一直在和一个作用域对象打交道,该作用域使用Scope构造函数创建:var scope = new Scope();根作用域就是这样创建的。之所以称之为根作用域,是因为他翻译 2016-04-26 17:22:27 · 7856 阅读 · 0 评论 -
创建自己的AngularJS - 作用域和Digest(四)
作用域第一章 作用域和Digest(四)联合$apply调用 - $applyAsync不论在digest里面还是外面调用$evalAsync去延迟工作,他实际是为之前的使用案例设计的。之所以在setTimeout中调用digest是为了在digest循环外面调用$evalAsync时防止混淆。针对在digest循环外部异步调用$apply的情况,同样有一个名为$applyAsync来处理。其使用类翻译 2016-04-11 10:15:19 · 4481 阅读 · 1 评论 -
创建自己的AngularJS - 作用域和Digest(五)
作用域第一章 作用域和Digest(一)销毁监控当你注册一个监控,很多时候你想让它和scope一样保持活跃的状态,所以不必显示的删除他。然而,有些情况下,你需要销毁一个特定的监控,但是仍然保持作用域可操作。意思就是,我们需要给监控增加一个删除操作。Angular实现这个的方式特别聪明:Angular中的$watch函数有一个返回值。他是一个函数,但其被调用的时候,即删除了其注册的监控。如果想要能够移翻译 2016-04-18 10:08:26 · 4002 阅读 · 0 评论 -
创建自己的AngularJS - 作用域继承(二)
作用域第二章 作用域继承(二)$apply、$evalAsync和$applyAsyncdigest整个树结构正如我们在上节中看到的,$digest只在当前作用域上向下运行。而$apply则不是这样。当你在Angular中调用$apply,将会直接在根作用域上执行,并且digest层次中的所有作用域。翻译 2016-11-26 11:06:50 · 1019 阅读 · 0 评论