Não é possível encontrar o controlador exigido pela diretiva

Eu tenho uma diretiva que eu gostaria que outra diretiva pudesse chamar. Eu tenho tentado usar controladores de diretiva para tentar conseguir isso.

A diretiva um estaria na mesma página que a diretiva dois, e a diretiva um chamaria métodos expostos pelo controlador da diretiva dois:

Directiva 1:

'use strict';
angular.module('angularTestApp')
    .directive('fileLibrary', function () {
        return {
            templateUrl: 'views/manage/file_library/file-library.html',
            require: 'videoClipDetails',
            restrict: 'AE',
            link: function postLink(scope, element, attrs, videClipDetailsCtrl) {
                scope.doSomethingInVideoClipDirective = function() {
                    videClipDetailsCtrl.doSomething();
                }
            }
        };
    });

Directiva dois:

'use strict';
angular.module('angularTestApp')
    .directive('videoClipDetails', function () {
        return {
            templateUrl: 'views/video_clip/video-clip-details.html',
            restrict: 'AE',
            controller: function($scope, $element) {
                this.doSomething = function() {
                    console.log('I did something');
                }
            },
            link: function postLink(scope, element, attrs) {
                console.log('videoClipDetails directive');
                //start the element out as hidden
            }
        };
    });

Arquivo em que os dois são usados e configurados como irmãos:

<div>
    <div video-clip-details></div>
    <!-- main component for the file library -->
    <div file-library></div>
</div>

Sei que, lendo a documentação que compreendi, os controladores podem ser compartilhados quando as diretivas estão no mesmo elemento, o que me faz pensar que posso estar olhando para esse problema da maneira errada. Alguém pode me colocar no caminho certo?

questionAnswers(2)

yourAnswerToTheQuestion