角度JS-尝试创建视频选择器"angular way"



我有一个页面,其中包含指向多个视频的链接。视频缩略图显示在列表中,当您单击其中一个缩略图时,该视频将在顶部的常见视频播放器中播放。

如果我在jQuery中执行此操作,我会有一个点击事件,该事件获取存储在链接上的数据属性上的视频ID,并(重新)使用此视频ID创建视频播放器并显示普通播放器(如果尚未显示)。

但是,我正在尝试以"角度方式"执行此操作。 一种方法可能是添加一个 $scope.showVideo 单击处理程序来完成所有这些操作。

但似乎我也许应该在指令中执行此操作,因为 DOM 操作应该在指令中完成......

那么,我是否将此指令放在普通视频播放器上? 那么,它能做什么呢?

如果有人有任何想法,我只是在寻找一个高级架构计划来做到这一点。

谢谢。

这听起来绝对像是指令的工作。 您可以创建一个指令<video:player>,然后让它呈现缩略图和播放器的 html。

就通过视频列表而言,我找到了两种工作方法。

  1. 您可以使用ng-transclude在视频播放器指令下嵌套<video:player:thumbnail>
  2. 您可以根据控制器中作用域上的数据集传入参数: $scope.thumbnails = [{image: 'image1', path: '/video1.mp4'}, ...]

    并为您的指示 <video:player thumbs="thumbnails">

现在,就选择要播放的内容而言,您只需在缩略图上单击一下即可输出 ng 点击即可

<a href="" ng-click="load_video(thumb.path)"><image src="thumb.image"></image></a>`

加载视频可以简单地在示波器上设置一个"current_video_path",然后在播放器本身中使用:

<video>
    <source src="current_path">
</video>

您还可以初始化指令中的当前路径,以设置要播放的默认视频。

最新更新