2016-08-18 21 views
8

ngAudio için bir sarıcı bileşeni yapmaya çalışıyorum, sarıcının kendisi kontrolleri olan oyuncu olacak ve ngAudio’nun işlevleri ile etkileşime girecek. Onunla bazı kapsam sorunları yaşıyorum, bunu bileşenin denetleyicisine enjekte edebilirim ve oradaki ngAudio'a erişebilirim, ancak şablonun kapsamından erişemiyorum. ngAudio'u $scope.ngAudio = ngAudio; gibi şeyleri kullanarak kapsam içine girmeyi denedim - herhangi bir fikri varsa harika olurdu. Bir çeşit iki yönlü bağa ihtiyaç duyacağına inanıyorum? Veya ngAudio modülüne genel olarak yönerge seviyesinden erişmek için bir yol.Modülden direk şablona erişilemiyor, Açısal

Kodu:

bileşen:

.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"); 

 } 
}); 

şablon

<div class="container" id="player"> 

 <button class='btn btn-primary' ng-click='ngAudio.paused ? ngAudio.play() : ngAudio.pause()'>{{ngAudio.paused ? "Play" : "Pause" }}</button> 
</div> 

cevap

5
bu bir bileşenidir beri

, sadece denedim ...

this.ngAudio = ngAudio; 

?

Hayır, aslında, dokümanlara göre, şöyle load veya play sonucuna olmasını isteme :

this.audio = ngAudio.play("https://api.soundcloud.com/tracks/167999916/stream?client_id=123456576789"); 

http://danielstern.github.io/ngAudio/#/docs at docs "Eğik Ses Örneği" parçasını bakın (At Sayfanın en altındaki

+0

Teşekkürler! Bunu şablona bağladığınıza ve hala bakmaya gerek yok. Şablonun HTML'si içinde tanımlanmamış olarak gösteriliyor. –

+1

ngAudio burada yönerge değildir ve erişmeye çalıştığınız şey aslında 'play' çağrısının sonucudur, bu yüzden buna atamanız gerektiğini düşünüyorum. Cevabı güncelledim, eklenen bağlantıya da bir bak. – Meligy

+1

Teşekkürler! Haklıydınız, bir örneğe karşı hizmetten söz ediyordum. İyi günler :) –

İlgili konular