Angularjs 角度控制器:父指令的访问范围
我有一个指令Angularjs 角度控制器:父指令的访问范围,angularjs,angularjs-directive,angularjs-scope,angularjs-controller,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Controller,我有一个指令myDirective,带有一个嵌套的控制器myCtrl(是的,我知道这不是一个好的设计实践,我稍后会重构它,但我现在没有时间重构它)。在指令中,我定义了一个变量customID。我需要访问myCtrl范围内的customID。问题是,customID对于myDirective的每个实例都是唯一的,因此(我可能错了)我认为服务不起作用,因为myDirective的所有实例都会获得相同的customID值 有没有一种简单的方法可以将customID从myDirective传递到myCt
myDirective
,带有一个嵌套的控制器myCtrl
(是的,我知道这不是一个好的设计实践,我稍后会重构它,但我现在没有时间重构它)。在指令中,我定义了一个变量customID
。我需要访问myCtrl
范围内的customID
。问题是,customID
对于myDirective
的每个实例都是唯一的,因此(我可能错了)我认为服务不起作用,因为myDirective
的所有实例都会获得相同的customID
值
有没有一种简单的方法可以将customID
从myDirective
传递到myCtrl
<div myDirective>
<div id="{{customID}}"></div>
<div ng-controller="myCtrl">
{{customID}}
</div>
</div>
{{customID}}
如果您将myDirective和myCtrl的源代码添加到您的问题中,将会很有帮助。当心骆驼案!myDirective不是有效的名称:如果将该指令本身称为myDirective,则该指令应为myDirective。customID
应在myCtrl
的范围内可用。控制器不会创建孤立的作用域。谢谢大家的建议。最后,我回到绘图板,将嵌套的控制器重构为一个指令,然后我可以这样初始化:
您是否尝试使用scope.$parent,即使您的指令有一个独立的作用域,这也应该有效。这是我尝试的第一件事。当我在MyCtrl
中调用$scope.$parent
时,我没有得到myDirective
的作用域。我取而代之的是myDirective
的父控制器的作用域。可能是$scope.$parent
不识别指令作用域,因为它们是隔离的?