如何访问 Angular2 中的 HTML 视频元素

2023-11-24

我有一个 HTML5<video>Angular2 组件中的元素。我需要访问它,以便在允许用户将其共享到 Twitter 之前检查持续时间。

有没有什么方法可以通过模型绑定或直接访问 DOM,在组件的支持类中获取此信息?

我尝试使用 ng-model 绑定它,就像在组件的模板中这样:

<video controls width="250" [(ng-model)]="videoElement">
    <source [src]="video" type="video/mp4" />
</video>

在组件的类(TypeScript)中:

videoElement: HTMLVideoElement;

这给了我这个错误:EXCEPTION: No value accessor for '' in [null]

我只需为视频元素提供一个 id 并使用即可访问它document.getElementById("videoElementId")但似乎必须有更好的方法。


您可以注入ElementRef然后访问该元素,例如

element.nativeElement.shadowRoot.querySelector('video').duration;
// with encapsulation: ViewEncapsulation.Native

以及其他视图封装模式可能

element.nativeElement.querySelector('video').duration;

(不过我自己还没有尝试过)。


这应该也有效

<video (durationchange)="durationChangeEventHandler($event)"></video>

然后使用访问它$event.target


使用指令(Dart 代码中的示例)

@Directive(selector: 'video')
class VideoModel {
  ElementRef _element;
  VideoModel(this._element) {
    VideoElement video = _element.nativeElement as VideoElement;
    video.onDurationChange.listen((e) => duration = video.duration);
  }

  num duration;
}

在你的组件中添加

@Component(
    selector: 'my-component',
    viewProviders: const [VideoModel], 
    directives: const [VideoModel],
    templateUrl: 'my_component.html') 
class MyComponent {
    @ViewChild(VideoModel) 
    VideoModel video;
}

现在您可以使用以下命令访问持续时间video.duration

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何访问 Angular2 中的 HTML 视频元素 的相关文章

随机推荐

  • iOS 17 更新后 PWA 应用在 Safari 上崩溃

    我的 Angular 应用程序在 iPhone 上作为 PWA 正常工作 但在上次 ios17 更新后 该应用程序崩溃了 即使我在 Safari 上清除现金 它也可能会再次工作几分钟 然后当我关闭时 该网站的 PWA 快捷方式将停止工作苹果
  • CoreBluetooth反复断开连接

    我已经上下查找过这个问题 但似乎没有人遇到这个问题 我有两台 iPad 其中一个充当始终位于前台的蓝牙外设 由于我对中央侧更感兴趣 因此我将中央 iPad 背景设置为支持 BLE central 我的工作流程如下 中央应用程序运行并开始扫描
  • 具有 Parquet 和分区的 Spark DataFrames

    我无法找到有关此主题的太多信息 但假设我们使用数据帧读取 10 个块的 parquet 文件 spark 自然会创建 10 个分区 但是 当数据帧读入文件来处理它时 它不会处理很大的数据与分区比率 因为如果它处理未压缩的文件 块大小会更大
  • 使用 NWConnection 进行长时间运行的 TCP 套接字的正确方法

    我整天都在与 NWConnection 作斗争 以在长时间运行的 TCP 套接字上接收数据 由于缺乏文档 我在给自己造成以下错误后终于让它工作了 数据不完整 由于只调用一次receive 获取 TCP 数据无序 由于从计时器 轮询 接收 导
  • 自定义对话框片段

    我正在尝试创建一个类似于DatePickerDialog The Dialog我正在创建的应该为用户提供一系列图像供他们选择 我相信我已经成功创建了数组并向其中添加了正确的图像 我现在遇到的问题是如何获取Dialog现身 我应该返回什么 我
  • 了解 AVPlayer 对象何时准备好播放

    我正在尝试玩一个MP3传递给的文件UIView从以前的UIView 存储在NSURL fileURL多变的 我正在初始化一个AVPlayer with player AVPlayer playerWithURL fileURL NSLog
  • Angular 等待多个 http 请求完成,然后触发最后一个请求

    我有 4 个 http 请求 第三个接收查找值 而第四个接收实际表单数据 他们是这样的 let medicalData this data getCodes medical subscribe data gt console log med
  • 如何使用react-native将文件上传到服务器

    我正在开发一个应用程序 我需要将图像上传到服务器 根据图像 我得到了需要渲染的响应 你能帮我看看如何使用react native上传图片吗 React Native 内置了文件上传功能 Example来自 React Native 代码 v
  • GetCommandLine linux *true* 等效项

    与 Linux 等效的类似问题 GetCommandLine 和 CommandLineToArgv 是否有可能获得rawLinux 下的命令行 文件 proc self cmdline 被破坏 a out files file 1 fil
  • 为什么布尔变量的默认值往往为 false? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 据我所知 C VB Jav
  • 如何将 $_SESSION 变量传递到 websocket 服务器?

    我在网上搜索了很多 但没有找到有用的线索 我有一个 websocket 服务器和一个 Web 服务器在我的本地计算机上一起运行 当客户端使用浏览器 API new WebSocket ws localhost 连接到 WebSocket 服
  • 临时文件未找到文件异常

    我正在构建 java 应用程序 Spring JSF PrimeFaces 我将文件上传到服务器 但是 如果我在文件上传结束后立即单击 下一步 按钮 则会收到此错误 Aug 24 2013 8 12 34 PM org apache cat
  • PHP mkdir() 权限

    我有一个 Linux 服务器 使用 apache 作为 Web 服务器 在我的 PHP 脚本中 我正在创建目录0777模式 代码非常简单 如下所示 mkdir path 0777 当我运行此脚本并转到我的服务器文件管理器时 该文件夹就在那里
  • PHP 简单 HTML DOM 解析器在有效 url 上返回 false

    我正在尝试以下操作 url https www tripadvisor es Hotels g187514 Madrid Hotels html ta html file get html url var dump ta html 它返回
  • Dialog 或 DialogFragment 中的 Activity 是否有等效的dispatchTouchEvent()

    我需要拦截应用程序中的所有触摸事件以监视自定义活动超时 目前我使用dispatchTouchEvent 在我的活动中 但如果屏幕上有对话框 则不会调用此函数 有谁知道是否有任何方法可以在存在对话框的情况下拥有相同的功能 Thanks For
  • Javascript - 在新选项卡中打开链接(同一窗口)

    我意识到这个主题已经有几个问题了 但它们似乎都很老了 只是想为此获得最新的答案 打开新选项卡 在同一浏览器窗口内 的标准方式仍然是 window open url blank window focus 另外 我读到它取决于浏览器的用户配置
  • 将 2 个元素数组的 JavaScript 数组转换为对象键值对

    从这样的事情中获得最快的算法是什么 var array 1 a 2 b 3 c 像这样的事情 Object 1 a 2 b 3 c 到目前为止 这就是我想出的 function objectify array var object arra
  • 计算元音

    谁能告诉我这个脚本有什么问题吗 我是一个 python 新手 但我似乎无法弄清楚是什么导致它无法运行 def find vowels sentence gt gt gt find vowels test 1 count 0 vowels a
  • Matlab中有高斯差分函数吗?

    我是图像处理新手 在我的实验中 我在高斯差分方面遇到困难 给了我各种实现 但我不理解它们及其参数 这是我的公式 我应该自己实现这个过滤 还是有为此定义的现有函数 当然 所有参数都类似于链接中的参数 我需要调整参数并生成不同的图像 您可以使用
  • 如何访问 Angular2 中的 HTML 视频元素

    我有一个 HTML5