Angular JS學習筆記 (作用域 重要)

Angular JS 作用域 Scope

Scope 作用域

是一個對象,儲存應用數據模型。
作用域的層級結構對於DOM結構時相對應的

每個Angular應用只有一個root scope, 像DOM一樣,子作用域有很多

Scope 生命週期

  1. 創建期
  2. 註冊$watch
    在模板鏈接階段,指令會向作用域中註冊監聽器
  3. 數據模型變化
    angular隱式地把數據模型放到$apply()中
  4. 數據模型變化監測
    首先rootscope 進入$digest 方法,再根據各個監聽表達式或者函數分發到各個作用域去,輪循檢測數據模型是否發生變化,如果有變化就調用watch方法

關於$watch
髒值檢測時實時監測數據的,所以一定要是高效的。值得注意的是,我們在進行髒值檢測的時候一定不能

基於作用域的事件傳播

作用域可以像DOM節點一樣,進行事件的傳播。

  • broadcasted : 父作用域向子作用域廣播
  • emitted: 從子級作用域向父級作用域傳值

這兩種方式是用在html中的,不是js裏,因爲在$scope中已存在這兩方法

  <button ng-click="$emit('MyEvent')">$emit('MyEvent')</button>
  <button ng-click="$broadcast('MyEvent')">$broadcast('MyEvent')</button>

我們在js中設置監聽 scope.scope.on()

 $scope.$on('MyEvent', function() {
    $scope.count++;
  });

這樣就可以實現父子間通信

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章