javascript - Angularjs - 元素上的多个指令,其中一个是隔离范围

标签 javascript angularjs angularjs-directive

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

我有一个具有独立作用域的指令,称之为 dirA。然后我在上面放了另一个指令,dirB。期望第二个指令获取 isolate 指令创建的每个范围。

dirB 获取 Controller 作用域。为什么它不会获得 dirA 为该元素创建的相同隔离范围?

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

最佳答案

您观察到的是正确的,此行为是设计使然。

当一个指令请求一个独立的作用域时,AngularJS 会专门为该指令创建一个作用域,不会为声明该指令的元素创建一个作用域。换句话说,隔离是针对每个指令的,而不是针对每个元素的。这使得编写可重用和独立指令的代码比必须防止对其他指令的隔离作用域的不当使用要容易得多。

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

关于javascript - Angularjs - 元素上的多个指令,其中一个是隔离范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26692263/

相关文章:

html - 为 ng-repeated 标签和其他 div 设置标签索引

javascript - 使用 $http 的 AngularJS 自定义表单验证

javascript - 从指令访问隔离范围的属性

javascript - jquery/js 错误 - DOM 错误 : DOM Exception 8 - When I . html 任何变量

javascript - 如何输入具有静态属性的 React.ComponentType?

javascript - 如何在 javascript 或 jquery 中以百分比设置 html 元素位置

angularjs - 如何在指令内访问 angularjs 中的 Controller 变量?

javascript - 获取tinymce中的单词数

angularjs - ExpressJS 如何传递带有状态的对象(例如连接)?

angularjs - 手动输入日期时,md-datepicker 显示错误