angular1 x的簡單介紹 二

2022-06-04 03:54:09 字數 1979 閱讀 6226

關於angular.element在angular中的使用和jquery中的$("")是完全一樣的,當本頁面中沒有外部的jquery,angular.element是等價於jqlite的.

$是區別angular內部類與定義類的標識,而$$表示私有方法.

function($scope)告訴我們$injector所在angular裡面不能直接對類進行例項化,呼叫只能先申明,後使用.

不管做什麼事,遵循5w2h分析法都能很有效提高工作效率,angular就很好遵循了這樣的分析法,這給開發帶來很大的便利.

run:是angular中的main方法,是整個angular的入口方法,run只會在整個angular生命週期內只會呼叫一次.

當我們的html元素出現巢狀關係的時候,內層繼承外層的變數造成值的重寫問題

$rootscope是乙個angular的內部類,作用是用於根模組的資料快取,用於模組與模組間的資料共享.

$scope的作用:1.$scope用於繫結view的抽象(屬性和方法).

2.$scope是連線controller與view之間的資料橋梁,是實現angular中的mvvm模組的核心類.

3.$scope是實現雙向資料繫結的關鍵類.

4.$scope是用來監視view,model之間的資料變化,並通知對方,從而實現view與model之間的資料同步.

5.$scope可以實現controller與controller之間的事件傳遞(類似js事件冒泡,事件捕捉)

另外補充一些$scope常用的方法:

$scope.$emit  向上一級控制器傳送事件(冒泡)

$scope.$broadcast  向下傳遞事件(捕獲)

$scope.$on  用來接收事件的值

$watch是用手動新增監視器,

它的語法為:

$watch(監視的物件(可以值型別/引用型別)val,監視有變化的**方法:fn,true|false(true對引用型別進行監視));

fn(新輸入的值,快取的過去值)

髒檢查(dirty checking): 繫結的值與上一次快取中的值有沒有發生變化,如果有變化,資料dirty.那麼怎樣才知道繫結的值發生了變化呢?

當我們在$scope上面繫結乙個屬性的時候,angular就會在這個屬性上新增乙個$$watcher(),這個監視器有兩個作用,乙個就是多長時間後快取一次資料,另乙個就是比較這個資料.當我們在使用ng-*表示式的時候,angular在}上繫結乙個watcher.在angular裡有它的迴圈訪問的機制,$digest就是angular內建的乙個服務,它以loop(迴圈)方式訪問監視器列表(angular $watcher list)(相當於while()方法),$watcher會執行值的比較,當這次比較的值不相等的時候,表示watcher的值需要進行資料同步,就會把model -view 的資料進行更新.

觸發髒檢查的目的是為了監測值是否發生變化,怎麼知道值發生變化呢,就需要拿到上一次的值,要拿到上乙個值就需要不斷的進行輪詢,由此可見angular雙向資料繫結是十分耗費效能的,他會把所有的屬性新增乙個監視器,然後還有乙個輪詢不斷詢問是否發生變化.$scope上繫結超過2000個屬性之後效能就變得十分差.因此angular的雙向資料繫結其實是一把雙刃劍.

一邊學習一邊寫博,在大框架下用到什麼寫什麼,最後回頭看發現寫得有點雜亂.

Angular1 x啟動分析

angularjs的原始碼在整體上,與其他很多庫和框架一樣,是乙個自執行函式,其整體結構簡化如下 匿名自執行函式,保證angular.js載入完成後,立即執行其中 eg function window,document,undefined 繫結 jquery 或者 jqlite 實現 angular...

HTML的簡單介紹(1)

什麼是 html?很多人想要知道html的詳細介紹,那麼今天就來給大家講解一下其中一些知識。來說說html 所說的語言,它是一種用來描述網頁的語言。html 指的是超文字標記語言 並不是一種程式語言,而是一種標記語言 標記語言是一套標記標籤 html 使用標記標籤來描述網頁 html 標籤 html...

Hadoop的組成介紹以及1 x 2 x的版本區別

hadoop的組成 hadoop1.x和2.x區別 1.x 有mr hdfs common 2.x 有mr yarn hdfs common 1.x 的mr負責計算和資源排程 2.x 的mr功能拆分成了mr和yarn 分別負責計算和資源排程。我們主要來說下2.x版本 1.hdfs 1 nn name...