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?