我可以从具有隔离范围属性的元素的内部HTML访问父范围吗?

时间:2016-08-18 03:14:57

标签: javascript angularjs

我有一个属性指令' 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>

这可能吗?

2 个答案:

答案 0 :(得分:2)

不是。隔离范围的目的正是为了防止您尝试实现的目标,而不是从任何其他范围继承。如果您不想访问父作用域并仍然创建一个新作用域,则应设置scope: true

答案 1 :(得分:0)

正如@Andrés在回答中所说,scope: true允许你的指令有一个从父母继承的新范围。

我想补充一点,如果你想拥有没有隔离范围的属性,你仍然可以使用类似的东西:

attr.$observe('myIsolateDirectiveParam', function(myIsolateDirectiveParam){
    scope.myIsolateDirectiveParam = scope.$eval(myIsolateDirectiveParam);
});