Требуемый по директиве контроллер не найден
У меня есть директива, к которой я хотел бы обратиться с помощью другой директивы. Я пытался использовать директивные контроллеры, чтобы попытаться достичь этого.
Директива one будет находиться на той же странице, что и директива два, а директива one будет вызывать методы, предоставляемые контроллером директивы two:
Директива 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();
}
}
};
});
Директива вторая:
'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
}
};
});
Файл, где эти два используются и установлены как родные братья:
<div>
<div video-clip-details></div>
<!-- main component for the file library -->
<div file-library></div>
</div>
Я знаю, что, читая документацию, я понял, что контроллеры могут совместно использоваться, когда директивы находятся на одном элементе, что заставляет меня думать, что я могу смотреть на эту проблему неправильно. Кто-нибудь может поставить меня на правильный путь?