AngularJS - 指令无法访问所需祖先的控制器

AngularJS - Directive can't access required ancestor's controller

我需要从指令访问祖先的指令控制器。为此,我在 "child" 指令上使用 require 属性,如您在以下代码中所见

mmDirectives.directive('mmMapActions', function() {
  return {
    restrict : 'E',
    require : 'ˆmmSidebar',
    link : function(scope, elem, attrs, mmSidebarCtrl) {...}
  }
}

我在同一个模块上声明了另一个 mmSidebar 指令,并且它有一个关联的控制器,根据需要:

mmMapsDirectives.directive('mmSidebar', function() {
  return {
    restrict : 'E',
    transclude : true,
    scope : {...},
    controller : function($scope) {...}
  }
}

然后我有以下DOM

<div ng-controller='mmMapInteractionsController as mapInteractionsCtrl'>
  <mm-sidebar class='sidebar' ng-if='mapInteractionsCtrl.isInitialised()'
              map='mapInteractionsCtrl.map' ...>
    <mm-map-actions></mm-map-actions>
  </mm-sidebar>
</div>

但是,我仍然得到旧错误

Error: $compile:ctreq Missing Required Controller

这应该意味着mmMapActions找不到mmSidebar的控制器,但似乎关于DOM的结构的一切,至少,是正确的。

我怀疑它有另一个祖先控制器 mmMapInteractionsControllerng-if='...'(尽管我已经尝试删除它并且抛出了同样的错误)。

您认为导致错误的原因是什么?

问题是我在 require: ^someDirCtrl 上使用的是 ˆ 而不是 ^ ……愚蠢,我知道。