1 <!DOCTYPE html> 2 <html lang="en" ng-app="demo"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>demo</title> 6 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"> 7 <link rel="stylesheet" href="../bootstrap.css"> 8 </head> 9 <body > 10 <div ng-controller="one"> 11 {{msg}} 12 {{msg2}} 13 {{txt}} 14 </div> 15 <div ng-controller="tow"> 16 {{msg}} 17 {{txt}} 18 </div> 19 <script src="../angular.js"></script> 20 <script> 21 (function(){ 22 angular.module("demo",[]) 23 .controller("one",function($scope,$rootScope){ 24 $scope.msg = "hello"; 25 var msg2 = "hello2"; 26 $rootScope.txt = "hello3" 27 }) 28 .controller("tow",function($scope){ 29 30 }) 31 })() 32 </script> 33 </body> 34 </html>
效果如下:
2.$scope事件数据传递
demo {{msg}} sendEvent {{msg}} (){ ,[]) (s){ (event,data){ data; 27 }); 28 }]) (s){ (){ ); ); 33 } 34 }]) (s){ (event,data){ data; 38 }); 39 }]) 40 })()
效果如下:
3.AngularJS在什么情况下才执行双向绑定?
dirty checking 绑定的值与上一次缓存中的值有没有变化,如果有变化,数据dirty,怎么才能知道绑定的值发生了变化呢?
当我们在$scope上面绑定一个属性的时候,angular就会在这个属性上添加一个$$watcher(): 多长时间后缓存一次数据。
$watcher会执行值的比较。当这次比较的值不相等的时候,表示watcher的值,需要进行数据同步
data $digest $watherlist date ->$wathe()->把model-view之间的数据进行更新同步