Javascript can';t访问父作用域上的属性,但是我可以看穿该属性链
我在隔离作用域上有一个名为Javascript can';t访问父作用域上的属性,但是我可以看穿该属性链,javascript,angularjs,Javascript,Angularjs,我在隔离作用域上有一个名为itemClickHandler的属性。然后我有几个从它继承的其他作用域,包括由ng repeat指令创建的作用域。两个子作用域都不创建隔离作用域,因此我应该能够访问子作用域上的此属性,但由于某些原因,我无法访问。为什么? 这项工作: scope.$parent.$parent.$parent.itemClickHandler //returns value 这不起作用: scope.itemClickHandler //returns undefined 通常情况
itemClickHandler
的属性。然后我有几个从它继承的其他作用域,包括由ng repeat
指令创建的作用域。两个子作用域都不创建隔离作用域,因此我应该能够访问子作用域上的此属性,但由于某些原因,我无法访问。为什么?
这项工作:
scope.$parent.$parent.$parent.itemClickHandler //returns value
这不起作用:
scope.itemClickHandler //returns undefined
通常情况下,您的代码示例可以工作,但正如您自己所说,您在一个独立的范围内。根据定义,将从原型链中删除隔离范围(引用自): 通常,作用域原型从其父级继承。独立作用域不存在。有关隔离作用域的更多信息,请参阅“指令定义对象-作用域”部分
你能做一个扑通吗?如果不在中查看所有控制器和作用域,则很难确定确切的问题play@tymeJV,我正在使用。我刚刚添加了以下
项ClickHandler:“=”
到angularAccordion
的范围中,并像这样以html传递回调。我正在尝试访问paneHeader
指令的链接函数中的此回调。似乎在某个地方有scope.itemClickHandler=未定义,那么此scope值将更改,此时sceop.$parent将更改not@tymeJV,我怀疑由插件中的指令添加的ng transclude
可能与此有关。可能吗?