国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

angularjs 中$apply,$digest,$watch詳解

2019-11-20 08:45:25
字體:
來源:轉載
供稿:網友

如果你對angular的$apply,$digest,$watch似懂非懂,那我相信下面幾句話能讓你深刻理解!

此文針對已經了解過$apply,$digest,$watch的同學。也就是說你已經在很多的博客論壇搜索過$apply,$digest,$watch,雖然有點蒙,但似懂非懂的感覺。

如果你從未進行過了解,那本文對你將沒有一點幫助!

<!DOCTYPE html><html lang="zh-CN" ng-app="app"><head>  <meta charset="utf-8">  <title>angular時鐘輔助理解$apply,$digest,$watch</title>  <link rel="stylesheet" href="../bootstrap.min.css"></head><body ng-controller="myController">  <div ng-bind="clock.now"></div>  <script src="../angular.min.js"></script>  <script>    angular.module(‘app‘, [])    .controller(‘myController‘, function($scope, $timeout, $interval) {      // 第一種      // $scope.clock = {};      // var clockFunction = function() {      //   $scope.clock.now = new Date();      //   $timeout(function() { // 使用$timeout 來代替setTimeout(),因為前者已經調用了$apply()      //     clockFunction();      //   }, 1000)      //   // setTimeout(function() {      //   //   $scope.$apply(clockFunction);      //   // }, 1000)      // }      // clockFunction();      // 第二種      $scope.clock = {         now: new Date()      };         var updateClock = function() {        $scope.clock.now = new Date();      };         setInterval(function() { // 如果不使用$interval 則需要手動調用$apply(),以使已經改變的$scope及時的更新到view        $scope.$apply(updateClock);        // 這里可以看出 $scope已經改變但并未及時更新到view        // updateClock();        // console.log($scope.clock.now);      }, 1000);         updateClock();    })  </script></body></html>

準備開始!

$apply (通知)
$digest(循環)
$watch(監聽)

這里可能與英語的翻譯有所差別,但是這不是重點,重點是讓你能夠理解

angular在監聽數據變化并執行雙向綁定時一定會做的事情:

通知($apply)angular,告訴他有一個函數test($apply(test)),需要他幫忙做下臟檢查($digest臟檢查),在做臟檢查的同時監聽數據變化($watch)并反映到view中

當不在angular上下文中的時候,則需要你手動$apply。如果不做$apply雖然angular能夠監聽數據變化,但他并不會將數據及時更新到view,因為他并不知道你的數據在什么時候是最新的

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渝中区| 香港 | 十堰市| 磴口县| 信宜市| 荆门市| 天峨县| 巴林左旗| 英超| 衢州市| 新竹县| 遂溪县| 高州市| 德令哈市| 青冈县| 闽清县| 梁山县| 调兵山市| 佛山市| 隆化县| 双江| 青阳县| 准格尔旗| 新营市| 金湖县| 安宁市| 中超| 怀集县| 湛江市| 宜兴市| 株洲市| 弥渡县| 安国市| 武乡县| 苍南县| 中阳县| 驻马店市| 榆中县| 九龙坡区| 恩施市| 延长县|