这篇文章主要是面向那些刚开始学AngularJs和想要了解数据绑定(data-binding)是怎么工作的, 如果你已经熟悉如何使用angularjs了,我强烈建议你不用阅读了. angularjs使用者想要知道data-binding是如何工作的,就会遇到很多的关的术语 比如$wacth,$apply,$digest,dirty-checking(脏值检测)...等等,这些又是做什么的呢? 在这篇文章里我会解决所有的疑问,通过结合这些术语在一起来学习. 但是我会尽量用简单的方式来说明. 现在开…
浏览器事件发生时,会在浏览器的上下文window中执行,而angular有自己的上下文angular content,angular 事件在自己的上下文angular content中执行. $watch $watch组成了双向绑定的一边,在指定的表达式改变时调用,每个作用域都维护了一个监视器列表,被称为$scope.$$watchers.每次你绑定一些东西到你的UI上时你就会往$watch队列里插入一条$watch. <ul> <li ng-repeat="person in…
声明:借鉴好多chm资料.视频.PDF总结如下: 一.$apply的引入 View <div ng-app=""> <div ng-controller="firstController"> <input ng-model="date"/> {{date}} </div> </div> 原生js函数,不能实现刷新(因为没有实现双向绑定(脏检查)) var firstController…
在网络上可以找到多种指令之间的通讯 · $on,$emit,$boardcast (向上或向下冒泡) · 指令return的required (^)向上一个scope通讯,前提要先给scope一个name · 建立一个factory,让需要通讯的指令依赖注入factory服务 以上都可以解决通讯问题,但是在不同的状况下还是会遇到代码阅读上的问题 今天遇到的问题是当指令A的child的指令B要和指令A通讯,同时指令C(不在指令A的child)要和指令A通讯 最终决定使用$on和$boardcast…
1.@Input:可设置属性 当它通过属性绑定的形式被绑定时,值会“流入”这个属性. 在子组件中使用,例如:@Input()name:string 父组件定义宾亮,并在父组件的模板中绑定,例如: 子组件模板中:{{name}} 子组件控制器中:@Input()name:string 父组件控制器中:username = "Lion" 父组件模板中:[name] = "username" (在调用的子组件的选择器中绑定) 此时,数据即从父组件传入子组件,子组件能在本身…
1.angular 里 字符串与对象互转  angular.toJson();将字符串转成对象 angular.forJson(); 将字符串转成对象  2.angular 循环    <script src="../js/angular.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascrip…
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="jquery-1.11.1.js"></sc…
1.与AngularJS的区别 相同点:都支持指令:内置指令和自定义指令:都支持过滤器:内置过滤器和自定义过滤器:都支持双向数据绑定:都不支持低端浏览器. 不同点:AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单.直观:在性能上,AngularJS依赖对数据做脏检查,所以Watcher越多越慢:Vue.js使用基于依赖追踪的观察并且使用异步队列更新,所有的数据都是独立触发的. 2.与React的区别 相同点:Reac…
Dirty Checking (脏值检查) Digest cycle and $scope Digest cycle and $scope First and foremost, AngularJS defines a concept of a so-called digest cycle. This cycle can be considered as a loop, during which AngularJS checks if there are any changes to all t…
一些知名的批评和缺陷.他们都涉及到$digest loop(更新周期)中一个很常见的问题:如何在Angular之外更新$scope? 在哪调用 $apply? 更佳的做法是确保你是在$digest loop之外时调用$apply,比如在"link"指令(directive)响应函数内部使用. 也就是说,只能在$controller之外调用$apply,这样它就可以访问到HTML或其他controller控制器的声明代码 - 比如apply调用link指令并触发相应功能,这时侯是肯定在$…