AngularJs 學習筆記(一)範圍

來源:互聯網
上載者:User

標籤:html   roo   生命週期   測試   dom   parent   初始化   賦值   通過   

AngularJs採用了注重時效的MVC方式,是基於MVW模式。

1.$scope和範圍的概念。

AngularJs中的$scope對象是模板的領域模型,也稱作範圍執行個體,通過為其屬性賦值,可以傳遞給函數進行渲染,$scope對象可以精準地控制領域模型的資料和操作。

2.Controller控制器

其本質就是一個JavaScript函數,不需要擴充任何AngularJs的類或者API。其主要職責是初始化範圍執行個體,包括提供模型的初始值和增加UI相關的行為來擴充$scope對象。在設定模型初始值的時候,這與ng-init指令做同樣的工作,不過控制器不會汙染HTML模板。

進階——DOM樹驅動範圍樹結構的建立

  AngularJs擁有$rootScope,它是其他所有範圍的父作用,會將根ng-app元素進行綁定,$rootScope是所有$scope對象的最上層,在新應用啟動的時候自動建立。$scope的概念與JavaScript分層的概念類似,在為子DOM元素建立新的範圍的時候,實際上是為子DOM元素建立了一個新的執行內容,其$parent屬性指向父範圍。$Scope都是Scope類的執行個體,其有很多方法來控製作用域的生命週期和提供事件傳播的功能,以及支援模板渲染等。AngularJs中的ng-controller指令會調用Scope對象的$new()方法建立新的範圍。

注意:盡量避免使用$parent屬性,因為它在AngularJs運算式和模板建立的DOM結構間建立了強關聯,另一種解決方案就是講變數綁定為某一對象的屬性。

       測試代碼:

 1 <div ng-app="MyApp"> 2  3     <script> 4         var app=angular.module(‘MyApp‘,[]).run(function($rootScope) { 5             $rootScope.name=‘MyApp‘; 6         }) 7         app.controller(‘myControl_1‘,function ($scope) { 8             $scope.name=‘myControl‘; 9 10         })11         app.controller(‘myControl_2‘,function ($scope) {12            $scope.name=‘myControl_2‘;13 14         })15         app.controller(‘myControl_3‘,function ($scope) {16            $scope.name=‘myControl_3‘17 18         })19         app.controller(‘myControl_4‘,function ($scope) {20            $scope.name=‘myControl_4‘21 22         })23 24     </script>25         {{ name }}26     <div ng-controller="myControl_1">27         {{ name }}28     </div>29     <div ng-controller="myControl_2">30             {{ name }}31         <div ng-controller="myControl_3">32                 {{ name }}33         </div>34     </div>35     <div ng-controller="myControl_4">36             {{ name }}37     </div>38 </div>

 

       運行結果:

      

       範圍的層級關係如下:

 

  

 

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.