【发布时间】:2013-12-04 04:19:09
【问题描述】:
我在一个 Angular 项目中有一些代码,它们使用两个具有独立范围的独立指令。它们不需要共享范围,只需存在于同一个元素上。它们都以稍微不同的方式改变 DOM,并且重要的是绑定到作为参数传递的值。
这在 1.0 中有效,但是 Angular 1.2 现在在尝试执行此操作时会产生错误
多个指令要求新的/隔离的范围
根据项目的 git 历史,Angular 1.2 更改了行为以将同一元素上的两个独立指令分开。这是一件好事,当将两个“属性”指令放在同一个元素上时,它可以正常工作。
即
<div my:directive="myDirectiveData" my:other-directive="myOtherDirectiveData" />
按您的预期工作。
然而
<my:directive my:directive-data="myDirectiveData" my:other-directive="myOtherDirectiveData" />
抛出上述错误。 (多个指令要求新的/隔离的范围)
在这种情况下,我希望每个指令仍然与它们自己的非共享隔离范围并行存在。
在 Angular 1.2 中这仍然可能吗?
【问题讨论】:
-
在角度一个元素可以有一个范围,所以你不能在同一个元素上创建两个独立的范围
-
如果我在属性格式中使用两个指令,这在一个元素上似乎是可能的?
-
@JamesDavies,你是怎么做到的?
-
我正在经历同样的情况。我现在最关心的是为什么想要两个独立的作用域是错误的。我基本上只想要两个不同的指令访问控制器“树”中的不同对象。
标签: angularjs angularjs-directive angularjs-scope