Я пытаюсь получить доступ к контроллеру videogular.API от другого, брата, контроллера.Доступ к контроллеру videogular.API от другого, брата, контроллера
Я прочитал и использовал примеры из videogular сайта и используя API, как это:
controller.pauseVideo = function() {
controller.API.pause();
};
Это прекрасно работает, из ВНУТРИ videogular контроллера.
Я хотел бы начать и остановить видео с контроллера навигации. Этот контроллер не является родителем, а является родным братом.
Я создал событие $ широковещательного в нав:
myApp.controller('navController', function($scope) {
$scope.doPause = function() { // added ng-click="doPause();" to nav link
$scope.$parent.$broadcast('myCustomEvent', {
someProp: 'Pause!'
});
}
});
и в видеоконтроллер я добавил «слушателя»: (используя аналогичный контроллер установлен в качестве демонстрации на http://www.videogular.com/tutorials/videogular-api/)
myApp.controller('videoController',
["$sce","$scope", function ($sce, $scope) {
var controller = this;
controller.API = null;
controller.onPlayerReady = function(API) {
controller.API = API;
};
... other config settings ...
$scope.$on('myCustomEvent', function (event, data) {
console.log(data);
controller.API.pause();
});
}]
);
Событие работает, поскольку отправленные данные регистрируются в консоли, когда я нажимаю кнопку на nav. Но я также получаю сообщение об ошибке:
Error: controller.API is null
Почему это не работает из $ scope. $ On?
Высокий. Работал сперва. :-) –