Dor*_*oro 14 javascript angularjs angularjs-scope
如果Angularjs - 具有一个隔离范围的元素上的多个指令是正确的,则隔离范围绑定到指令,那么为什么会有任何冲突呢?此错误的文档说明了这一点processing them would result in a collision or an unsupported configuration
.我不买这个.多个指令已经共享元素的范围,这肯定会在碰撞/不支持的配置中出现.我已经尝试在此寻找"为什么",但是空手而归.
有人可以解释/举例确实会造成碰撞或不支持的配置吗?
答案很简单 - 只需要一个范围来绑定子元素(参见source),因为在子元素中完成的范围属性的赋值需要有一个明确的目标.其余的是措辞问题.
虽然在某种程度上,引用为"特定指令"创建的隔离范围是合适的(如链接的答案那样),但只有在请求隔离的指令是唯一的一个时才是这样.该元素的指令可以访问隔离范围.因此,创建范围是为了将指令和子元素与DOM的"级别"的其余部分隔离开来.
为多个指令提供相同的隔离范围可能会导致范围绑定配置发生冲突(多个指令可能会尝试绑定到隔离范围上的相同属性).
一个简单而引人注目的论点是,{{interpolated.expressions}}
元素需要在与plain expressions
提供给支持它们的指令相同的范围内进行评估,否则整个事情就会变得一团糟.(例如,由于插值{{expressions}}
是单独完成的,因此可以使用针对不同范围评估的表达式来配置接受plain expression
一个属性和String
另一个属性的指令.)
如果他们真的需要,他们可以访问隔离的范围(但这需要启用调试数据).如果它们的优先级低于创建隔离范围的指令,则它们只能element.isolateScope()
在其链接功能中使用(参见演示).
归档时间: |
|
查看次数: |
2789 次 |
最近记录: |