지시어를 사용하여 플로우 플레이어 미디어 플레이어에 액세스 가능하게하려고합니다. 상위 컨트롤러가 이벤트를 브로드 캐스팅 할 수 있고 플레이어는 리스너를 사용하여 이벤트에 응답합니다. 이벤트는 작동하지만 플레이어는 정의되지 않으므로 실제로 작동하지 않습니다. 내 문제는 : 1) 플레이어가 초기화되지 않았습니다. - 이걸 제대로 설정하면 안돼. 2) $ scope.player와 같은 스코프에서 플레이어 개체를 사용할 수있게하려면 $ scope.player.play() 또는 $ scope.player.stop()으로 말할 수 있습니다. 콘트롤러에 대한 나의 이해와, 플레이어가 DOM을 준비 할 때 링크를 초기화 할 때, 플레이어를 시작/중지시키는 스코프 변수에 할당 할 수 없기 때문에 무언가가 빠져있다. 콘솔에서 jquery를 사용하여 플레이어를 초기화 할 수 있으므로 init 함수가 적시에 실행되지 않는 것 같습니다.지시어의 미디어 플레이어 객체
코드
//view
<div ng-Controller="AudioCtrl">
<div url="pathto.mp3" audio-flowplayer><div>
</div>
// 컨트롤러
App = angular.module("myapp", [])
App.controller 'AudioCtrl', ['$scope', ($scope) ->
$scope.togglePlay() =->
$scope.broadcast('start')
//directive
App.directive 'audioFlowPlayer' ->
restrict: 'A'
scope: {
url: '@'
}
template: '<a href="{{url}}"</a>'
controller: ($scope, $element, $attrs) ->
$scope.init_player = ->
$scope.player =
$element.flowplayer("/path/to/flow.swf",
clip:
audoPlay: false
)
$scope.$on "start", ->
$scope.player.play()
link: (scope, element, attrs) ->
scope.init_player()
]