8
我试图做一个包装组件ngAudio
包装本身将是控制器的玩家 - 并且会与ngAudio的函数进行交互。我遇到了一些问题,我可以将它注入组件的控制器,并在那里访问ngAudio
,但我无法从模板的范围访问它。我已经尝试使用$scope.ngAudio = 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
谢谢!你是对的,我指的是服务而不是它的一个实例。祝你有美好的一天 :) –