2016-03-01 75 views
1

我的2方式出價不起作用,它的工作原理如果我直接調用vm.Play()函數,但是當它從視頻播放事件調用,然後它doesn沒有工作。有誰知道爲什麼?角度2方式綁定視頻播放事件不起作用

function VideoEventStats() { 
    var directive = { 
     restrict: "A", 
     replace: false, 
     scope: { 
      videoEventStats: "=" 
     }, 
     controller: controllerFunction, 
     controllerAs: "vm", 
     bindToController: true 
    }; 

    controllerFunction.$inject = ["$element"]; 

    function controllerFunction($element) { 
     var vm = this; 

     vm.Play = Play; 

     if($element.context.tagName === "VIDEO") { 

      angular.element($element).on('play', vm.Play); 

      $element.context.onended = function() { 
       console.log('ended..'); 
      }; 
     } 
     else { 
      console.warn('This element is not a video element'); 
     } 

     function Play() { 
      vm.videoEventStats.CurrentUserHasSeen = true; 
     } 
    } 

    return directive; 
} 

回答

0

添加vm.videoEventStats.CurrentUserHasSeen = true;在$超時內訣竅...

function Play() { $timeout(function() { vm.videoEventStats.CurrentUserHasSeen = true; }, 0); }