Я пытаюсь сделать компонент-обертка для ngAudio
, сама оболочка будет игроком с элементами управления - и будет взаимодействовать с функциями ngAudio. У меня возникают проблемы с областью, я могу вставить его в контроллер компонента и получить доступ к нему ngAudio
, но я не могу получить доступ к нему из области действия шаблона. Я пробовал установить ngAudio
в область видимости с помощью таких вещей, как $scope.ngAudio = ngAudio;
безрезультатно - если у кого-то есть идеи, это было бы здорово. Я считаю, что для этого потребуется какая-то двухсторонняя привязка? Или каким-то образом получить доступ к модулю ngAudio с уровня директивы.Невозможно получить доступ к модулю из шаблона директивы, Angular
Код:
компонент:
.component('player', {
// isolated scope binding
bindings: {
genre: '=',
track: '=',
ngAudio: '<'
},
templateUrl : '/templates/player-directive-template.html',
// The controller that handles our component logic
controller : function($scope, ngAudio) {
//tried:
//$scope.ngAudio = ngAudio;
ngAudio.play("https://api.soundcloud.com/tracks/167999916/stream?client_id=123456576789");
}
});
шаблон
<div class="container" id="player">
<button class='btn btn-primary' ng-click='ngAudio.paused ? ngAudio.play() : ngAudio.pause()'>{{ngAudio.paused ? "Play" : "Pause" }}</button>
</div>
Спасибо! Просто поставьте это и не смотрите на привязки в шаблоне. Он отображается как неопределенный в HTML-шаблоне. –
ngAudio вот сервис, а не директива, и то, что вы пытаетесь получить, на самом деле является результатом вызова 'play', поэтому я думаю, что вам следует назначить это. Я обновил ответ, посмотрю на добавленную ссылку. – Meligy
Спасибо! Вы были правы, я имел в виду службу, а не экземпляр этого. Хорошего дня :) –