119
A
回答
142
在「分離物」範圍需要對象的散列,其定義了一組從父範圍導出本地範圍的屬性。這些本地屬性對模板的別名值很有用。當地人定義是本地範圍屬性其源的散列:
=
或=attr
- 設置一個本地範圍 屬性並經由attr
屬性的值 定義名稱的父範圍屬性之間的雙向綁定。如果沒有指定attr
名稱,則假定 屬性名稱與本地名稱相同。如果給定<widget my-attr="parentModel">
和小部件定義scope: { localModel:'=myAttr' }
,那麼小部件範圍屬性localModel
將 反映在父範圍上的值parentModel
。parentModel
的任何更改將反映在localModel
中,localModel
中的任何更改都將反映在parentModel
中。 如果父範圍 屬性不存在,則會拋出 NON_ASSIGNABLE_MODEL_EXPRESSION異常。您可以使用=?
或=?attr
來避免此行爲 ,以便將該屬性標記爲可選。
應該觸發預期誤差在每個消化,影響範圍屬性:
parentSet = parentGet.assign || function() {
// reset the change, or we will throw this exception on every $digest
lastValue = scope[scopeName] = parentGet(parentScope);
throw Error(NON_ASSIGNABLE_MODEL_EXPRESSION + attrs[attrName] +
' (directive: ' + newScopeDirective.name + ')');
};
//...
if (parentValue !== scope[scopeName]) {
// we are out of sync and need to copy
if (parentValue !== lastValue) {
// parent changed and it has precedence
lastValue = scope[scopeName] = parentValue;
} else {
// if the parent can be assigned then do so
parentSet(parentScope, lastValue = scope[scopeName]);
}
}
相關問題
- 1. AngularJS隔離範圍指令
- 2. AngularJS:指令隔離範圍
- 3. 隔離範圍指令:angularjs
- 4. 隔離範圍指令,並在AngularJS
- 5. AngularJS分頁指令W /隔離範圍
- 6. Angularjs指令:隔離範圍和ATTRS
- 7. AngularJS指令和隔離範圍
- 8. Angularjs TreeView指令與隔離範圍
- 9. AngularJS指令隔離範圍行爲
- 10. AngularJS覆蓋隔離指令範圍
- 11. AngularJS指令 - 「scope:{}」是什麼意思?
- 12. 角,指令隔離範圍
- 13. 指令中的角度隔離範圍指的是父範圍
- 14. angularjs嵌套指令範圍隔離隱藏父指令對象
- 15. AngularJS指令 - 是否需要隔離範圍屬性?
- 16. scope:true在angularjs指令中是什麼意思
- 17. 隔離範圍「=」在指令中影響父範圍
- 18. 在什麼版本的AngularJS是'=?'隔離範圍介紹?
- 19. AngularJs 1.x中的指令:隔離範圍vs要求ngModel
- 20. AngularJS指令:'&'在隔離範圍內沒有按預期工作
- 21. 「超出範圍」是什麼意思?
- 22. 超出範圍是什麼意思?
- 23. AngularJS - 爲什麼我的指令隔離範圍變量未定義?
- 24. 以下聲明是什麼意思?
- 25. C聲明是什麼意思?
- 26. 這個CSS聲明是什麼意思?
- 27. 這個C#聲明是什麼意思?
- 28. 以下聲明是什麼意思?
- 29. angular.js指令與隔離範圍
- 30. 角度指令反向隔離範圍
有道理,但爲什麼不[這個指令(http://plnkr.co/edit/ FxyDVi5JeWyC6B8TX1fk?p =預覽)拋出異常。父級範圍屬性不存在,範圍分配不使用'=?' – Nikita
它似乎只是在設置值時拋出錯誤,如下所示:http://plnkr.co/edit/OSpaC6sPE0hY9yAeFghr?p=preview –
這是在官方angularjs文檔中記錄的任何地方嗎? – cebor