У меня есть директива о том, что мне нужна другая директива, чтобы иметь возможность позвонить. Я пытаюсь использовать контрольные контроллеры, чтобы попытаться достичь этого.
Директива будет сидеть на той же странице, что и директива 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>
Я знаю документацию для чтения. Я понял, что контроллеры могут использоваться совместно, когда директивы находятся на одном элементе, что заставляет меня думать, что я, возможно, неправильно рассматриваю эту проблему. Может ли кто-нибудь поставить меня на правильный путь?