如何更改属性

2024-02-06

我有一个组件,其中包含一组三个自定义按钮,我想使用这些按钮作为录音机的控件。

我陷入了第一阶段,我想根据按钮的功能更改按钮上显示的符号。

我试图通过改变他们的方式来实现这一目标xlink:href属性(我使用 svg),但在控制台中得到了这个:

EXCEPTION: Error in ./RecordComponent class RecordComponent - inline template:5:45 caused by: this.roundButtonOne.getAttribute is not a function

知道为什么以及如何使用 Angular 方法来实现这一点吗?这是代码:

import {Component, ViewChild} from '@angular/core';

@Component({
  selector: 'app-record',
  template: `
    <svg class='roundButtonOne icon'>
      <use #roundButtonOne xlink:href='#mic'(click)='onRecord()'/>
    </svg>
    <svg class='roundButtonTwo icon'>
      <use #roundButtonTwo xlink:href='#live' />
    </svg>
    <svg class='roundButtonThree icon'>
      <use #roundButtonThree xlink:href='#upload' />
    </svg>
    `
})
export class RecordComponent {

  private recording: boolean = false;

  @ViewChild('roundButtonOne') roundButtonOne: HTMLElement;
  @ViewChild('roundButtonTwo') roundButtonTwo: HTMLElement;
  @ViewChild('roundButtonThree') roundButtonThree: HTMLElement;

  onRecord() {
    this.recording = true;

    switch(this.roundButtonOne.getAttribute('xlink:href')) {
      case '#mic':
        this.record();
        break;
    }
  }

  record() {
    this.roundButtonOne.setAttribute('xlink:href','#mic-small');
    this.roundButtonTwo.setAttribute('xlink:href', '#pause');
    this.roundButtonThree.setAttribute('xlink:href', '#stop');
  }
}

如果你打电话控制台日志在其中一个按钮元素上,您可以看到它是一个实例元素参考, not HTML元素.

So...

从 @angular/core 导入 ElementRef:

import {Component, ViewChild, ElementRef} from '@angular/core';

将按钮类型从 HTMLElement 更改为 ElementRef:

@ViewChild('roundButtonOne') roundButtonOne: ElementRef;
@ViewChild('roundButtonTwo') roundButtonTwo: ElementRef;
@ViewChild('roundButtonThree') roundButtonThree: ElementRef;

Get 原生元素 from 元素参考对象然后调用设置属性() / 获取属性()方法:

this.roundButtonOne.nativeElement.getAttribute('xlink:href');

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

如何更改属性 的相关文章

  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • Angular 模板验证表单

    我正在研究表单验证 我正在使用模板驱动的验证表单 其编码如下 现在工作正常 但是当我尝试添加时 username ngModel and password ngModel 在创建验证类的输入中 它向我显示一个错误 也请找到该错误 div c
  • 禁用允许文本选择的

    残疾人可以吗
  • 无法读取未定义的属性“搜索”

    我正在尝试制作一个使用 YouTube API 的脚本 我输入了一个关键字 youtube api 找到视频 gt 脚本获取第一个结果并返回 VideoID 现在我的问题是 当我按下提交按钮时 搜索功能不会被触发 有谁知道这可能是什么原因
  • 如何为 HTML 元素创建鼠标拖动滑块?

    我发现的许多滑块插件要么仅单击以查看下一个图像 要么如果它们确实具有鼠标拖动或触摸拖动功能 则仅允许图像 有谁知道为任何 html 元素编写鼠标拖动滑块的插件或可能的方法 我专门使用 SVG 但将来如果能在 div 元素之间滑动就更好了 H
  • 使用 highcharts 时,为什么 Bootstrap 选项卡显示宽度不正确的选项卡窗格 div?

    因此 我正在使用 Twitter 的 Bootstrap 创建一个包含选项卡式内容的页面 但我的起始活动 div 的内容始终与其他选项卡的内容不同 例如 我在不同的选项卡中使用 highcharts js 放入图表 但活动选项卡始终显示正确
  • 先按行再按列布局 div

    我有一个容器div and 3 div里面如下 div div 1 div div 2 div div 3 div div 不知道每一个的内容div内部 但它们的高度和宽度是可变的 集装箱的高度由最高的决定div inside 我想展示这些
  • 如何消除 HTML 内容周围的边距?

    以下 HTML 显示正常 div style width 100px height 100px background red div Hello div div
  • Masonry - imagesLoaded - 不是函数

    Masonry and imagesLoaded应加载并正常工作 已经制作了一个类似的网站 并且可以正常运行 我不知道我的问题出在哪里 所以我希望你能看到问题所在 应该是少了点什么 在 Chrome Inspect 中 我收到以下错误 Un
  • 我如何能够以两行显示标题,并且每行的字体大小不同?

    我正在使用 Google Chart API 创建时间线图 并希望将图的标题修改为两行 问题 我如何能够显示具有不同字体大小的两线图表标题 电流输出 理想输出 相关研究 我唯一能找到的是有人试图用饼图来做到这一点 但我尝试了但无法使其发挥作
  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • @media语法/可能的组合

    我见过其中一些 media print media screen handheld print projection media all media all and property value media screen and prope
  • 悬停此元素时隐藏元素后的伪元素

    我的菜单垂直放置在页面左侧和菜单之间 li 我有一个 after那是一个分隔符 我想要的是当我悬停元素本身 如果它是第一个元素 时隐藏 after 元素 或者当它是中间元素时隐藏上面和底部的元素 如果它是最后一个子元素 则隐藏 after前
  • 响应式图像 - srcset 和尺寸属性 - 如何正确使用两者:基于设备像素比和基于视口的选择一起?

    到目前为止 我经常读到这个问题 并且它也发生在我自己的项目中 这里介绍一下我到目前为止所发现的关于 srcset 和 size 属性的内容 关于如何使用有两种不同的可能性srcset 属性 来源 w3c http w3c github io
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 使用css bootstrap时如何仅向一列添加右边框?

    我正在尝试使用CSS引导框架 http getbootstrap com css tables在我的项目中 我正在使用带有以下类的表table table bordered table striped 我想删除除第一列之外的所有列的边框 这
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • 当按下引号键时,java.awt.Robot.keyPress 抛出 IllegalArgumentException

    当您尝试使用 Robot keyPress 键入 双引号 它抛出 java lang IllegalArgumentException Invalid key code 我该如何解决或解决这个问题 如果有帮助的话 我目前使用的是 Windo
  • 在 .htaccess 重定向中保留 HTTP/HTTPS 协议

    我必须在 htaccess 中将端口 80 重定向到 2368 但我想保持请求的协议完整 以便 SSL 不会中断 我目前有这个 RewriteCond HTTP HOST sub domain com NC RewriteRule http
  • 如何向 fpdf 添加新字体?

    如何将 Gotham book 字体添加到 fpdf 中 大多数解释都不清楚并且很难理解 我需要一个例子 请问有人可以帮忙吗 没关系 得到了我的答案 Go to http www fpdf org makefont http www fpd
  • ASP.Net MVC3 Azure - 我需要会员提供程序存储过程吗?

    我正在使用 Azure 作为数据库存储来创建我的第一个 ASP Net MVC3 应用程序 有很多很棒的教程 但我目前正在使用这个 演练 在 Windows Azure 上托管 ASP NET Web 应用程序 http msdn micr
  • 如何在 Spring 中以编程方式获取当前活动/默认环境配置文件?

    我需要根据不同的当前环境配置文件编写不同的逻辑 如何从 Spring 获取当前活动的和默认的配置文件 您可以自动连接Environment https docs spring io spring framework docs current
  • 向面板添加鼠标单击事件

    我想分配mouseclick事件至asp net panel protected void Page Load object sender EventArgs e Panel p new Panel p Click new EventHan
  • Protege 中复杂类的推理

    我想做出这样的推论 比如图中灰色虚线代表的属性 我断言了一个普遍的公理 hasTaste some Bitter SubClassOf goesWellWith some hasTaste some Sweet 其中 bitter 是 Bi
  • new Date() 在 Chrome 和 Firefox 中的工作方式不同

    我想将日期字符串转换为Date通过 javascript 使用以下代码 var date new Date 2013 02 27T17 00 00 alert date 2013 02 27T17 00 00 是来自服务器的 JSON 对象
  • 使用 javascript 和 localStorage 加载样式表

    我正在使用 Jekyll 网站 这并不重要 因为这是一个静态页面 我只是将其编写为附加信息 期望的行为 我想通过 javascript 加载我的样式表 因此它可以依赖于本地存储的值 比方说dark and light 我用下面的代码做了一个
  • Scala 向右折叠和向左折叠

    我正在尝试学习函数式编程和 Scala 因此我正在阅读 Chiusano 和 Bjarnason 撰写的 Scala 函数式编程 我无法理解左折叠和右折叠方法在列表中的作用 我环顾四周 但没有找到适合初学者的东西 所以书上提供的代码是 de
  • ItemTemplate中的控件无法在Code Behind中调用

    我有服务器控件 例如另一个 gridview 中模板字段内带有 gridview 的弹出窗口
  • 调用数组上的成员函数 getQuery()

    尝试在 Laravel 中处理数据表 Error 调用数组上的成员函数 getQuery 在 Laravel 数据表中 这是 Laravel 代码 控制器 public function get all course requests co
  • 在网页上插入视频

    在网页上插入和显示视频有哪些可能性 不需要用户额外的插件或安装 可用于 flv 以外的格式 例如 f4v avi 在SO我发现了一些这样的问题 stackoverflow com https stackoverflow com questi
  • Xamarin 4.5 .net 上的 NameValueCollection

    我有一个针对 4 5 net 框架的 PCL 项目 我正在文件顶部导入 System Collections Specialized using System Collections Specialized 但我收到 无法找到 NameVa
  • 多种风格的静态 android 快捷方式?

    是否可以在不复制 Shortcuts xml 的情况下定义多种风格的静态快捷方式 我有两种口味 主要 包 com test 免费 包 com test free The 快捷方式 xml看起来像这样
  • 创建一个“阅​​读更多”链接来扩展页面上的内容

    我想创建一个阅读更多链接 该链接将扩展已显示的段落以显示同一页面上的整个文本 如果这个问题可以通过 HTML5 和 CSS 来解决 我希望如此 但我认为需要某种类型的脚本 例如 示例文本 Lorem ipsum dolor sat amet
  • Spring Boot/GraphQL 和 SQL 语句数量(N+1 期)

    我是 Graphql 的新手 正在研究创建概念证明以了解其工作原理 我正在使用 Spring Boot 2 2 2 RELEASE 并引入 graphql spring boot starter
  • 在 SQL 中命名主键“id”与“something_id”[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 返回文档所有者以获得大量 Google 云端硬盘文档 ID 列表

    我正在尝试识别 Google 云端硬盘中一长串 近 1000 项 文档的所有者 文档之间的所有者可能有所不同 我有每个项目的唯一文档 ID 我是我所在域的 Google Apps 管理员 有一个实用程序可以让我输入文档 ID 并查看该特定项
  • 如何更改属性

    我有一个组件 其中包含一组三个自定义按钮 我想使用这些按钮作为录音机的控件 我陷入了第一阶段 我想根据按钮的功能更改按钮上显示的符号 我试图通过改变他们的方式来实现这一目标xlink href属性 我使用 svg 但在控制台中得到了这个 E