Próbuję utworzyć komponent opakowania dla ngAudio
sam opakowanie będzie odtwarzaczem z elementami sterującymi - i będzie współdziałać z funkcjami ngAudio. Mam pewne problemy z zasięgiem, mogę go wprowadzić do kontrolera komponentu i uzyskać tam dostęp do ngAudio
, ale nie mogę uzyskać do niego dostępu z zakresu szablonu. Próbowałem ustawić zasięg w zakresie ngAudio
przy użyciu rzeczy takich jak $scope.ngAudio = ngAudio;
bez rezultatu - jeśli ktokolwiek ma jakieś pomysły, byłoby super. Uważam, że będzie to wymagało jakiegoś dwukierunkowego wiązania? Lub w inny sposób, aby uzyskać ogólny dostęp do modułu ngAudio z poziomu dyrektywy.Nie można uzyskać dostępu do modułu z szablonu dyrektywy, Angular
Kod:
komponent:
.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");
}
});
szablon
<div class="container" id="player">
<button class='btn btn-primary' ng-click='ngAudio.paused ? ngAudio.play() : ngAudio.pause()'>{{ngAudio.paused ? "Play" : "Pause" }}</button>
</div>
Dzięki! Po prostu wstaw to i nadal nie wyglądaj z powiązaniami w szablonie. Jest wyświetlane jako niezdefiniowane w kodzie HTML szablonu. –
NgAudio tutaj jest usługą, a nie dyrektywą, a to, do czego próbujesz uzyskać dostęp, jest w rzeczywistości wynikiem wywołania 'play', więc myślę, że powinieneś to przypisać. Zaktualizowałem odpowiedź, przyjrzyj się również dodanemu linkowi. – Meligy
Dziękujemy! Miałeś rację, miałem na myśli usługę, a nie jej przykład. Miłego dnia :) –