我正在构建单击以编辑指令,但在了解如何在隔离指令中访问父作用域时遇到问题。
示例:http://jsfiddle.net/ADukg/3591/
scope: {},
如果我“取消隔离”范围删除范围,它就有效:{};但需要孤立的范围。
更新
完成添加
controller: 'FormCtrl',
答案 0 :(得分:18)
您可以使用隔离范围上的$parent
属性来直接访问父作用域,但通常您需要使用属性来指定指令需要执行其工作的父作用域属性。 / p>
如果需要更改指令中的父作用域属性,请使用=
(双向对象)进行绑定。如果您只需要指令中父作用域属性的字符串值,请使用@
绑定(单向字符串)。
答案 1 :(得分:2)
如果你传递一个原始类型的属性,例如' string',' long'给定的解决方案将不起作用。 ......等 双向绑定仅适用于对象。
每个范围对象都包含一个名为$ parent的特殊属性,该属性引用其父范围。隔离范围还具有$ parent属性。但它指的是封闭控制器/指令的范围。
使其适用于原始属性:您可以将指令模板绑定到控制器。这会将您的指令暴露给它的父级,您可以通过$ parent访问。
第二个解决方案是不制作隔离范围(但我不认为这是你的目标)。