我有一个属性指令' my-isolate-directive'它修饰了它所附加的HTML元素的值。我把它作为一个孤立的范围,所以我可以将params传递给它。
但我还想继续引用父作用域中的对象 - 例如' outerVar'下面 - 来自具有属性指令的元素的值:
<div>
'outerVar' shows! {{outerVar}}
</div>
<div my-isolate-directive my-isolate-directive-param="requiredParam">
Oops! 'outerVar' does not show! {{outerVar}}
</div>
这可能吗?
答案 0 :(得分:2)
不是。隔离范围的目的正是为了防止您尝试实现的目标,而不是从任何其他范围继承。如果您不想访问父作用域并仍然创建一个新作用域,则应设置scope: true
。
答案 1 :(得分:0)
正如@Andrés在回答中所说,scope: true
允许你的指令有一个从父母继承的新范围。
我想补充一点,如果你想拥有没有隔离范围的属性,你仍然可以使用类似的东西:
attr.$observe('myIsolateDirectiveParam', function(myIsolateDirectiveParam){
scope.myIsolateDirectiveParam = scope.$eval(myIsolateDirectiveParam);
});