Angularjs-元素上有多个指令,其中一个是隔离作用域

Angularjs - Multiple directives on element with one being isolate scope

本文关键字:一个 作用域 隔离 元素 指令 Angularjs-      更新时间:2023-09-26

想知道是否有人能解释当前的行为。

我有一个具有隔离作用域的指令,称之为dirA。然后我又发布了另一条指令,dirB。期望第二个指令获取隔离指令创建的每个作用域。

dirB获取控制器作用域。为什么它不能获得dirA为该元素创建的相同隔离作用域?

谢谢你的帮助。我真的没有任何代码,只是好奇。如果有人需要两个小指令和一些html来帮助可视化,我当然会的。非常感谢。

您观察到的是正确的,这种行为是故意的。

当指令请求一个隔离的作用域时,AngularJS会为该指令创建一个作用域,特别是为声明该指令的元素创建而不是。换句话说,隔离是按指令而不是按元素进行的。这使得编写可重用和独立的指令比必须防止不正确地使用与其他指令隔离的范围要容易得多。

在同一元素上声明的所有其他指令共享外部作用域。(还值得注意的是,这些指令甚至不能请求自己的作用域,无论是否隔离。虽然在1.3之前由于错误而不能保证这种行为,但在1.3中已经修复了。)