【发布时间】:2015-09-29 10:23:35
【问题描述】:
我想创建一个指令,其中包含指令可以绑定和修改的嵌入内容。该指令具有隔离范围。我想它的工作原理是这样的:
<my-directive bound-item-name="childObj">
<input ng-model="childObj.someField">
</my-directive>
在运行时,我想使用childObj 作为my-directive 的隔离作用域activeObject 上的对象的别名。从本质上讲,您可能会认为这类似于 ng-repeat 允许您使用类似 obj as alias in objList 的语句的方式,并且在嵌入的内容中 alias 指的是单个实例。
我似乎无法弄清楚我实际上是如何做到这一点的...如果我将转换的内容更改为引用 $parent.activeItem 它确实按我的预期工作,但我觉得那是期待转换的内容对指令的工作原理了解太多。似乎在 compile 函数中进行修改可能会起作用,但我在文档中看不到如何使用嵌入的内容实际做到这一点。强制嵌入的内容与指令共享其范围是可以的,尽管我没有看到任何证据表明有某种方法可以做到这一点。
这一定是可能的,但是怎么做呢?
再摆弄一下,我可以通过修改 scope.$$childHead[scope.boundItemName] 而不是在指令中使用 scope.activeObject 来让它工作。虽然这可行,但如果可能的话,我不想依赖未记录的内部对象。
【问题讨论】:
-
只是不要为指令做隔离范围
-
@PawełSmołka 这不是我的选择。或者如果是这样,我必须解决它会导致的一堆其他问题。
-
所以我认为您需要将代码放置并链接它
标签: javascript angularjs angularjs-directive