【发布时间】:2014-07-30 08:59:21
【问题描述】:
假设我有一些角度标记,例如:
<custom bindTo="modelProperty">
<!-- Trascluded content. -->
</custom>
自定义指令是否可以使用 bindTo 属性进行绑定,允许被转入的内容访问属性,而不隔离自定义的范围?基本上,我希望一个指令绑定到模型的自定义部分,而不会将其从其父级的范围中切断,也不必添加额外的代码,例如:
scope.prop = scope.$parent.prop;
有什么想法吗?
编辑 我想它的结构类似于http://plnkr.co/edit/zq2OO1?p=preview,除了工作和没有隔离范围。
【问题讨论】:
-
我认为你不能在不污染包装范围的情况下做到这一点(例如使用
bindTo)。如果你污染了包装范围,那么如果页面上有超过 1 个custom指令,它就会中断。 -
@ExpertSystem 我认为如果他们使用
scope:true并将该范围作为第一个参数传递给 transclude 函数(查看我的答案),他们应该能够做到这一点 -
@MarcKline:是的,我的意思是他们不能共享范围。只要原型继承不妨碍您,您的方法就很好(例如,您不需要从嵌入元素更新原始值)。但除此之外,它确实有效。
-
@ExpertSystem 谢谢。是的,这就是为什么我包括关于确保它们在模型中具有点的注释(例如它们不是原语)
标签: javascript angularjs data-binding angularjs-directive angularjs-scope