Normal use cases in angular
If you have a parent directive and a child directive you create methods in the controller of the parent directive and re
Taken from romario333's comment: The cleanest solution is to simply use
var topController = $element.controller('top') // pass directive name or controller name
From the docs:
controller(name) - retrieves the controller of the current element or its parent. By default retrieves controller associated with the ngController directive. If name is provided as camelCase directive name, then the controller for this directive will be retrieved (e.g. 'ngModel').
$element can be injected into your directive controller.