首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Angular-Bootstrap模式下播放视频?

如何在Angular-Bootstrap模式下播放视频?
EN

Stack Overflow用户
提问于 2016-01-13 00:06:00
回答 1查看 2.3K关注 0票数 1

我基于资源的范围数组动态加载视频:

代码语言:javascript
复制
this.open = function (size, resource) {
    var modalInstance = $uibModal.open({
        templateUrl: 'playModal.html',
        controller: 'ModalInstanceCtrl',
        size: size,
        resolve: {
            resource: function () {
                return resource;
            }
        }
    });

    modalInstance.rendered.then(function () {
        $('#resource-video')[0].play();
    });
};

正如您所看到的,我正在使用jQuery选择器查找HTML5视频标记,并在模态的rendered事件的回调中播放它。要做到这一点并维护MVC纪律的“角度方式”是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-01-13 02:19:32

您可以创建一个原始的JavaScript“类”,它负责在给定原始dom元素的情况下操作视频。例如:

代码语言:javascript
复制
function VideoControl(videoElement) {
  this.videoElement = videoElement;
}

VideoControl.prototype.play = function() {
  this.videoElement.play();
}

VideoControl.prototype.pause = function() {
  this.videoElement.pause();
}

为了实例化它并实际将dom元素传递给它,您可以将它包装在一个指令中。例如:

代码语言:javascript
复制
app.directive('videoControl', function($parse) {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
      var videoControlModel = $parse(attrs.videoControl);
      videoControlModel.assign(scope, new VideoControl(element[0]));
    }
  };
})

然后,您可以像这样使用此视频控制指令:

代码语言:javascript
复制
<button ng-click="videoControl.play()">Play</button>

<video  class="video" controls video-control="videoControl">
    ...
</video>

下面是一个有效的柱塞:https://plnkr.co/edit/2epHSCo6wwyCplNhOBSe?p=preview

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34748409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档