Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否<;视频>;标签可以显示介质并处理角度错误_Javascript_Angularjs_Html_Video_Components - Fatal编程技术网

Javascript 检查是否<;视频>;标签可以显示介质并处理角度错误

Javascript 检查是否<;视频>;标签可以显示介质并处理角度错误,javascript,angularjs,html,video,components,Javascript,Angularjs,Html,Video,Components,我的目标是检查HTML5视频元素是否可以显示来自给定src的视频。我使用Angular构建我的应用程序。下面是我的html组件的模板和控制器的外观 传递给组件控制器的每个模型都有自己的路径和名称。当路径指向有效的mp4/webm/ogg文件时,它会完美地显示出来。但我想检查是否支持来自给定路径的文件。如果出现错误,我会向用户显示一个对话框,说明{{{vm.name+'无法显示'}} w3中有很多HTML音频/视频DOM引用方法,但我不知道如何使用它们。此外,我注意到我不能在组件的html模板文件

我的目标是检查HTML5视频元素是否可以显示来自给定src的视频。我使用Angular构建我的应用程序。下面是我的html组件的模板和控制器的外观

传递给组件控制器的每个模型都有自己的路径和名称。当路径指向有效的mp4/webm/ogg文件时,它会完美地显示出来。但我想检查是否支持来自给定路径的文件。如果出现错误,我会向用户显示一个对话框,说明
{{{vm.name+'无法显示'}}

w3中有很多HTML音频/视频DOM引用方法,但我不知道如何使用它们。此外,我注意到我不能在组件的html模板文件中使用内联js

那么?如何检查文件是否可以在视频标签中显示

video preview.html

<header class="dialog-header">
    <span>{{vm.name}}</span>
    <button type="button" class="btn btn-icon close-btn icon-close" ng-click="vm.closeDialog()"></button>
</header>
<div class="dialog-content">
    <video class="video-preview-dialog" id="myVideo" autoplay src="{{vm.path}}" controls></video>
</div>

答案是将带有“&”符号的函数从控制器传递到指令,并在发生错误时调用它。 1.dirctive中的链接标记 2.设置为player eventListener(“错误”,passedFunction())

就这样

(function () {
'use strict';
 angular
    .module('videoApp')
    .controller('VideoPreviewDialogController', VideoPreviewDialogController);

  /** @ngInject */
  function VideoPreviewDialogController(model, VideoDialogInstance) {
    var vm = this;
    vm.path = model.path;
    vm.name = model.name;
    vm.closeDialog = closeDialog;

    function closeDialog() {
      PreviewDialogInstance.cancel();
    }

  }
})();