Vic
Vic

Reputation: 8971

Angular on video load event

I'm still trying to understand angular...

Basically, I have an html5 video and I want to listen to the onloadeddata event (http://www.w3schools.com/jsref/event_onloadeddata.asp).

This is what I have:

html:

<video autoplay="autoplay" loaded-data loop style="display: none;">
  <source src="videos/example.mp4" type="video/mp4">
  <source src="videos/example.ogg" type="video/ogg">
</video>

directive:

angular.module('myApp')
  .directive('loadedData', function () {
    return function ($scope, $element) {
      $element.addEventListener("loadeddata", function () {
        console.log('test'); // never calls
      });
    }
});

Is this the correct way of handling this? For some reason, the event listener never gets called.

I've also tried

$element.bind('loadedData', function () {
    console.log('test');
});

but it also doesn't work...

Upvotes: 5

Views: 6418

Answers (2)

Garry Pankhurst
Garry Pankhurst

Reputation: 1

$element.on('loadeddata', function (event) {
   var width = $element[0].videoWidth;
}

'loadeddata' works for me 'loadedData' does not

Upvotes: 0

Vic
Vic

Reputation: 8971

Figured it out! Looks like I need to use:

$element[0].addEventListener(...)

Instead of:

$element.addEventListener(...)

Upvotes: 2

Related Questions