AngularJS 中的作用域原型/原型繼承有哪些細微差別?
JavaScript 中的原型繼承
- 原型繼承是物件從其原型繼承屬性的機制。
- 在 AngularJS 中,作用域通常從其父作用域繼承原型。
異常
- 範圍指令: { ... } 建立隔離範圍原型上不會從其父級繼承。
細微差別
子作用域屬性隱藏
- 通常,子作用域屬性的屬性變更不會影響父作用域
- 但是,當從子作用域將 2路資料綁定到父作用域中的 基元 時,子作用域會建立自己的屬性,隱藏相同的父屬性名稱。
解
- 在父作用域中使用基元物件(例如,parentObj.someProp)。
- 使用$parent.parentScopeProperty.
- 定義一個函數父作用域並從子作用域呼叫它。
Ng-repeat
- Ng-repeat 建立子作用域並將項目值指派給這些子作用域新屬性。
- 從 ng-repeat child 綁定到父作用域數組中的原語scopes 會產生獨立於父數組的子作用域屬性。
- 要避免這種情況,請在父作用域中使用物件陣列並綁定到 ng-repeat 中的物件屬性。
隔離範圍
- 由範圍為{ ... 的指令建立}.
- 不要從父作用域原型繼承。
-
使用屬性綁定父作用域屬性以隔離作用域屬性:
- = 兩個-方式綁定
- @ 用於單向綁定
- &用於表達式綁定
嵌入的範圍
- 由指令創建,且包含:true。
- 原型繼承自父作用域。
- 同級作用域隔離如果兩者都存在於指令中。
摘要
- 大多數作用域原型繼承自父作用域。
- 存在異常,例如作為由指令建立的隔離範圍。
- 需要注意的細微差別包括子範圍屬性隱藏和 ng-repeat 的特殊注意事項。
以上是原型繼承如何在 AngularJS 範圍內工作,以及常見的陷阱是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!