2016-08-18 19 views
8

Tôi đang cố gắng tạo thành phần bao bọc cho ngAudio chính trình bao bọc sẽ là trình phát có điều khiển - và sẽ tương tác với các chức năng của ngAudio. Tôi đang gặp một số vấn đề về phạm vi với nó, tôi có thể đưa nó vào bộ điều khiển của thành phần và truy cập ngAudio ở đó, nhưng tôi không thể truy cập nó từ phạm vi của mẫu. Tôi đã thử đặt ngAudio thành phạm vi bằng cách sử dụng những thứ như $scope.ngAudio = ngAudio; không có kết quả - nếu có bất kỳ ý tưởng nào, nó sẽ tuyệt vời. Tôi tin rằng nó sẽ cần một số loại ràng buộc hai chiều? Hoặc một cách nào đó để thường truy cập vào mô-đun ngAudio từ mức chỉ thị.Không thể truy cập mô-đun từ mẫu chỉ thị, Angular

Code:

thành phần:

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

 } 
}); 

mẫu

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

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

Trả lời

5

Do đây là một thành phần, bạn đã cố gắng chỉ ...

this.ngAudio = ngAudio; 

?

Không, trên thực tế, theo tài liệu, bạn muốn đặt nó là kết quả của load hoặc play, như:

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

Hãy xem phần "góc âm thanh Ví dụ" mảnh trong các tài liệu tại http://danielstern.github.io/ngAudio/#/docs (Tại phía dưới cùng của trang)

+0

Cảm ơn! Chỉ cần đặt điều này vào và vẫn không nhìn bằng các ràng buộc trong khuôn mẫu. Nó hiển thị dưới dạng không xác định trong HTML của mẫu. –

+1

NgAudio ở đây là dịch vụ không phải là chỉ thị, và những gì bạn đang cố gắng truy cập thực sự là kết quả của cuộc gọi 'play', vì vậy, tôi nghĩ bạn nên gán cho điều đó. Tôi đã cập nhật câu trả lời, hãy xem liên kết đã thêm. – Meligy

+1

Cảm ơn bạn! Bạn đã đúng, tôi đã đề cập đến các dịch vụ như trái ngược với một thể hiện của nó. Có một ngày tuyệt vời :) –

Các vấn đề liên quan