Javascript 我可以从具有隔离作用域属性的元素的内部HTML访问父作用域吗?

Javascript 我可以从具有隔离作用域属性的元素的内部HTML访问父作用域吗?,javascript,angularjs,Javascript,Angularjs,我有一个属性指令“my isolate指令”,它装饰它所附加的HTML元素的值。我将它设置为一个隔离作用域,以便将参数传递给它 但我还想继续从具有attribute指令的元素的值中引用父范围中的对象,例如下面的“outerVar”: <div> 'outerVar' shows! {{outerVar}} </div> <div my-isolate-directive my-isolate-directive-param="requiredParam"&

我有一个属性指令“my isolate指令”,它装饰它所附加的HTML元素的值。我将它设置为一个隔离作用域,以便将参数传递给它

但我还想继续从具有attribute指令的元素的值中引用父范围中的对象,例如下面的“outerVar”:

<div>
    'outerVar' shows! {{outerVar}}
</div>

<div my-isolate-directive my-isolate-directive-param="requiredParam">
    Oops! 'outerVar' does not show! {{outerVar}}
</div>

“户外”节目!{{outerVar}}
哎呀“outerVar”不显示!{{outerVar}}

这可能吗?

不可能。隔离作用域的目的正是通过不从任何其他作用域继承来防止您试图实现的目标。如果您不想访问父作用域,但仍要创建一个新的作用域,则应将其设置为
作用域:true

。隔离作用域的目的正是通过不从任何其他作用域继承来防止您试图实现的目标。如果您不想访问父作用域并且仍然创建一个新的作用域,那么您应该设置
scope:true

,正如@Andrés在他的回答中所说的那样,
scope:true
允许您的指令从父级继承一个新的作用域

我要补充的是,如果您希望拥有不隔离作用域的属性,您仍然可以使用以下方法:

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

正如@Andrés在回答中所说,
scope:true
允许您的指令从父指令继承一个新的作用域

我要补充的是,如果您希望拥有不隔离作用域的属性,您仍然可以使用以下方法:

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

您可以找到关于它的文档您可以找到关于它的文档您需要使用
outerVar
作为指令的参数(推荐方式)或使用
$parent
(例如
$parent.outerVar
)访问父作用域(这超出了隔离作用域的目的,通过)您需要使用pass the
outerVar
作为指令的参数(推荐方式)或使用
$parent
(例如
$parent.outerVar
)访问父作用域(这超出了隔离作用域的目的,通过)