想知道是否有人可以解释当前的行为。
我有一个具有隔离作用域的指令,称为 dirA。然后我在它上面放了另一个指令,dirB。期望第二个指令获得隔离指令创建的每个范围。
dirB 获取 Controller 范围。为什么它不会获得 dirA 为该元素创建的相同隔离范围?
谢谢你的帮助。我真的没有任何代码,只是好奇。如果有人需要两个小指令和一些 html 来帮助可视化,我当然会。谢谢你。
最佳答案
您观察到的是正确的,这种行为是设计使然。
当指令请求一个隔离的作用域时,AngularJS 会专门为该指令创建一个作用域, 而不是 用于声明指令的元素。换句话说,隔离是针对每个指令的,而不是针对每个元素的。这使得编码可重用和独立指令比必须防止不正确使用与其他指令隔离的范围要容易得多。
在同一元素上声明的所有其他指令共享外部作用域。 (同样值得注意的是,这些指令甚至不能请求自己的作用域,无论是否隔离。虽然由于错误,在 1.3 之前不能保证这种行为,但它在 1.3 中已经是 fixed。)
关于javascript - Angularjs - 元素上的多个指令,其中一个是隔离范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26692263/