angularjs 的筆記

來源:互聯網
上載者:User

標籤:mod   解析   url   font   返回   出錯   調用   驗證   變更   

angular.copy()深拷貝

angular提供了一個可以複製對象的api——copy(source,destination),它會對source對象執行深拷貝。

使用時需要注意下面幾點:
  • 如果只有一個參數(沒有指定拷貝的對象),則返回一個拷貝對象
  • 如果指定了destination,則會深拷貝對象複製給destination
  • 如果source是null或者undefined,那麼會直接返回source
  • 如果source就是desitination,那麼會報錯。
angular.equals()比較對象

AngularJS中的angular.equals()方法用於比較兩個對象、值或運算式是否相等。AngularJs文檔中對equals方法比較的原則是這樣描述的:

(1)比較的兩個對象或值能夠通過 === 運算式。===要求兩個值不僅值相同,類型也要相同,也就是說,1 === “1”是不成立 的。

(2)比較的兩個對象或值是相同類型的,而且它們所有的屬性通過angular.equals()方法判斷都是相等的。

(3)兩個值都為(NaN)。(在JavaScript中認為NaN == NaN是false)

(4)兩個值代表字面上相等的運算式,如兩個Regex:/abc/與/abc/是相等的。

angular $apply()

$apply方法傳播Model的變化。

那我們到底什麼時候需要去調用apply()方法呢?情況非常少,實際上幾乎我們所有的代碼都包在scope.apply()裡面,像ng?click,controller的初始化,http的回呼函數等。在這些情況下,我們不需要自己調用,實際上我們也不能自己調用,否則在apply()方法裡面再調用apply()方法會拋出錯誤。如果我們需要在一個新的執行序列中運行代碼時才真正需要用到它,而且若且唯若這個新的執行序列不是被angular JS的庫的方法建立的,這個時候我們需要將代碼用scope.apply()包起來。

 

我是這樣理解的該函數用於更新view的value,當需要變更view values時,需要調用該方法。典型地,這個函數由DOM的事件處理函數來調用。

比如,一個input directive在當它的input變更時就會調用$setViewValue,再比如:select控制項在當一個option被選擇時也會調用這個函數更新view value。

  • $render();

當視圖需要更新的時候會被調用。使用ng-model的指令應該自行實現這個方法。

  • $isEmpty(value);

該方法用於判斷輸入值是否為空白。 
例如,使用ngModelController的指令需要判斷其中是否有輸入值的時候會使用該方法。該方法可用來判斷值是否為undefined,‘‘,null或者NaN。 
你可以根據自己的需要重載該方法。

  • $setValidity(validationErrorKey, isValid);

該方法用於改變驗證狀態,以及在控制變化的驗證標準時通知表格。 
這個方法應該由一個驗證器來調用。例如,一個解析器或者格式化函數。

  • $setPristine();

該方法用於設定控制到原始狀態。 
該方法可以移除‘ng-dirty‘類並將控制恢複到原始狀態(‘ng-pristine‘類)。

  • $cancelUpdate();

該方法用於取消一次更新並重設輸入元素的值以防止$viewCalue發生更新,它會由一個pending debounced事件引發或者是因為input輸入框要等待一些未來的事件。

 

  • $setViewValue();

該方法用於是為了在指令中改變ng-model綁定的值,適用於使用了獨立範圍的指令(在沒有雙向繫結屬性的情況下,無法通過scope進行賦值)。

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.