AngularJS入門

來源:互聯網
上載者:User

標籤:mvc   min   watch   自動   view   javascrip   bind   r.js   stc   

基本知識:http://www.runoob.com/angularjs/angularjs-tutorial.html

下載angularjs網址:http://www.bootcdn.cn/angular.js/

AngularJS概念:

1.MVC

封裝資料代碼(model),應用邏輯代碼(controller),頁面渲染資料代碼(view),三層獨立分離

Angular中,視圖就是Documenet Object Model, 控制器就是Javascript類,資料模型就是儲存在對象的屬性中

2.資料繫結

資料繫結可以自動將model和view間的資料同步,Angular實現資料繫結的方式是把model作為資料來源,view始終是model的投影,當model發生變化時,會自動反映在view上

3.依賴注入

Angular的依賴注入是擷取它所需要的東西,而不建立它們所依賴的東西(一句話 ---> 沒事你不要來找我,有事我會去找你。)

4.Angular資料繫結原理:使用髒檢查比較資料是否發生了變化

知道變數發生變化一般有兩種情況

(1)一是通過固定的介面改變值,如set()方法,缺點是寫法繁瑣,每個屬性都要寫一個set方法,

(2)二是髒檢查,將對象複製一份快照,在某個時間比較現在對象與快照的值,如果不一樣就說明發生了變化,這個策略要保留兩份,而且要遍曆對象,比較每一個屬性,比較消耗效能。angular中所有帶ng-開頭的事件執行後,都會觸發髒檢查

頁面動態顯示時間例子

demo_01.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body>    <div ng-app>        <div ng-controller="firstController">            <div ng-bind="date"></div>        </div>    </div>    <script type="text/javascript" src="../common/angular/angularjs.js"></script>    <script type="text/javascript" src="demo_01.js"></script></body></html>

demo_01.js

/** * Created by Administrator on 2017/7/21. */var firstController = function($scope){    //new 一個時間    $scope.date = new Date();    //每隔一秒執行一次    setInterval(function () {        //通過 $apply 方法進行髒檢查,從而動態改變頁面資料        $scope.$apply(function () {            $scope.date = new Date();        });    },1000);}

 $apply() 說明:

 $apply()只是進入angular的上下文中,通過 $digest() 方法去觸發髒檢查,在調用 $digest() 方法時,angular會先執行angular的 $eval() 方法,如果 $eval() 解析失敗會拋異常,所以不建議直接調用 $digest() 方法,而應該使用 $apply() 方法,先讓 $eval() 方法進行校正,資料合法了再執行下文, $apply() 如果不給參數,會檢查$scope裡所有監聽的屬性,推薦給上

 $digest() 說明:

所有 $scope 和 $scope的子類會進行髒檢查,髒檢查又會觸發 $watch() 方法,這樣實現了資料的雙向繫結

 $watch() 說明:

angularJs內部的wath實現了頁面隨model的變化而變化,在  $digest() 方法執行時,如果  watch 觀察的 value 與上次執行不一樣時,就會被觸發

 

AngularJS入門

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.