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