获取多个元素的引用

2024-03-20

我有一堆动态创建的输入字段

<tr *ngFor="let row of rows; let rowIdx = index">
    <td *ngFor="let col of columns; let colIdx = index">
        <mat-form-field class="example-full-width">
            <input #inputs #test type="text" placeholder="Pick one" aria-label="Number" matInput [formControl]="myControl" [matAutocomplete]="auto"
                    (keyup.enter)="shiftFocusEnter(rowIdx, colIdx)">
            <mat-autocomplete #auto="matAutocomplete">
                <mat-option *ngFor="let option of filteredOptions | async" [value]="option">
                    {{ option }}
                </mat-option>
            </mat-autocomplete>
        </mat-form-field>
    </td>
</tr>

我想访问我的课程中的这些输入字段。 我目前正在使用

@ViewChild('test', { read: MatAutocompleteTrigger }) test: MatAutocompleteTrigger;

来访问它。 然而,这只会给我通过循环创建的所有输入字段的第一个输入字段。

使用 ViewChildren 只会在调用“测试”对象的实习生函数时导致错误

e.g.

this.test.closePanel() => “this.test.closePanel 不是一个函数”

Edit1:

为了提供更多信息,我有一个动态创建的表(行和列)。 我的表格当前充满了多个输入字段。我可以通过按 Enter 键来浏览这些输入字段。

但是,如果我按 Enter 键进行 Tab,角度自动完成材料的建议面板将不会关闭。这就是为什么我尝试手动调用 closePanel() 方法,但是通过使用上述方法,只有第一个单元格被“识别”,因此 closePanel() 方法仅适用于第一个单元格 - 输入元素

EDIT 2:

几周前我设法解决了这个问题,但忘记更新以防有人也遇到这个问题。

这就是我的方法现在的样子:

    shiftFocusEnter(rowIdx: number, colIdx: number) {
    console.log("Enter", rowIdx, colIdx);  
    if(colIdx == 4 && rowIdx == 5) {
    console.log("Reached end of row");
    }
    else {
      colIdx = colIdx + this.columns.findIndex(c => c.editable);
      this.focusInput(rowIdx, colIdx);
      this.autocompletes.toArray().forEach(el => {
        el.closePanel();
      })
    }
  }

  focusInput(rowIdx: number, colIdx: number) {
    console.log("FOCUS ON", rowIdx, colIdx);
      let inputEls = this.inputs.toArray();
      let flatIdx = (rowIdx * this.columns.length) + colIdx;
      inputEls[flatIdx].nativeElement.focus();
  }

None

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

获取多个元素的引用 的相关文章

  • 使用 php 变量更改 css 类

    这里需要您的帮助 正如标题所示 我正在尝试使用 PHP 变量更改 css 类 所以基本上我想创建一个回显某些代码的循环 但我希望第一个循环中的 div 类有所不同 它应该被隐藏 这是我为使问题变得清晰而编写的简化代码 我不知道错误在哪里 请
  • 我应该使用 HTML 中的什么标签,没有特殊含义,仅用于携带元数据?

    是否有任何无意义的 HTML 标签来携带额外的元数据 例如指定块 区域的 JavaScript 属性 喜欢 div class item div
  • 元标记内的属性 property="og:title" 是什么?

    我有网站源代码的摘录 这是做什么的属性属性代表什么 其目的是什么 og title是开放图元标签之一 og 属性定义社交图中的对象 例如 Facebook 使用它们 og title代表对象的标题 因为它应该出现在图表中 请参阅此处了解更多
  • 为什么 Chrome 给 body 元素添加边距? [复制]

    这个问题在这里已经有答案了 我有简单的 html 文档 是进入身体的一种元素 当我在 div 元素中设置 margin top 时 Chrome 会向 body 添加相同的边距 边距仅在开发者工具中可见 我的代码 div Test div
  • 获取动态图像的宽度和高度

    我有一个img嵌入隐藏标签内div 当用户单击具有图像名称的动态超链接时 图像必须显示在模式窗口中 为了将 div 定位在模态窗口内 需要图像高度 但是当点击超链接后 src被分配 高度为0 所以图像不能在中间对齐 请帮助我在浏览器中显示图
  • 回显 HTML 并内置 PHP

    请帮助我使用 echo 与 HTML 和 PHP 使用数组范围将其转换为动态
  • jQuery 输入事件在 IE 中的占位符上触发

    我有一个输入字段input绑定到它的事件 通过 jQuery 每次输入值更改时都应触发此事件 我添加了一个占位符来告诉用户此输入字段的用途 如果用户单击此输入字段input不应触发事件 该值实际上不会改变 只是占位符消失 它在 Firefo
  • 突出显示 Html 文档中不同标签的文本

    我是新来的角js 现在我正在突出显示 HTML 文档中的文本 So 我的代码是这样的 var InstantSearch highlight function container highlightText var internalHigh
  • Typescript 编译错误:类型“typeof e”上不存在属性“bodyParser”

    我想在我的节点 express 环境中使用打字稿 托管在 Cloud 9 ide 中 我在尝试让编译器编译 app ts 时遇到问题 它出现了几个错误 其中属性 bodyParser 在类型 typeof e 上不存在就是其中之一 我在应用
  • 生成的表的行跨度导致额外的单元格

    HTML table border 1 cellspacing 1 width 100 thead tr td class csstextheader width 70px td td class csstextheader width 7
  • 如何在 HTML5/CSS3 中将视口锁定为纵向方向

    是否可以在移动设备上将视图端口的方向锁定为纵向 我用谷歌搜索了它 但无法找到确切的操作方法 这个技巧应该有效 media screen and orientation landscape html Rotate the content co
  • Video.js - 阻止点击播放功能

    我正在使用 video js 将视频嵌入到 HTML 页面中 它将用作仅适用于 ipad 的 Web 应用程序 因此我相信它使用的是本机 HTML5 播放器 我正在尝试禁用点击播放功能 以便用户必须使用控件 但我在这样做时遇到了麻烦 我尝试
  • 关闭 Godot 中的游戏

    我正在使用 Godot 创建网页游戏 为了关闭游戏 我尝试使用 get tree quit 如果我在 IDE 上使用它 它就可以工作 当我在我的服务器上尝试它时 导出项目后 它不起作用 我确信导出设置没问题 我怎样才能关闭游戏 并且 如何添
  • TypeScript 编译错误 TS5037:除非提供“--module”标志,否则无法编译外部模块

    无法编译任何 TS node js 项目 包括示例中列出的项目 http typescript codeplex com sourcecontrol latest samples imageboard README txt http typ
  • Angular2 i18n:使用 XLIFF 的原因是什么?

    我有点不明白为什么 Angular 团队选择使用 XLIFF 而不是 JSON 我缺少什么 由于投票接近而编辑 我注意到有人说答案是基于观点而不是基于事实 XLIFF 的一个缺点是它比 JSON 更大 我试图了解除了偏好之外是否还有选择 X
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • 使用 MailTo 链接,我可以向发件人发送副本吗?

    我们开发了一个非常简单的表单 一旦提交 就会填充一封电子邮件以发送支持票证 这些电子邮件目前发送给我们的 支持人员 但如果我们也能向发件人发送一份副本 那就更理想了 我们正在使用 mailto 链接 这可能吗 例如 我们的员工 Brad 填
  • 如何保存包含框架/iframe 的完整 html 页面?

    在网页抓取期间 我想将当前页面的 html 保存到文件中以供以后调试 browser html在大多数情况下有帮助 但是当页面包含 iframe frame 时 它 的内容不会返回browser html 我必须用类似的东西单独得到它bro
  • 让管道自我刷新角度

    我有来自后端的静态时间戳 我想每 1 秒刷新一次管道以获取现在的日期 这是我的烟斗 import Pipe PipeTransform from angular core import moment from moment Pipe nam
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj

随机推荐

  • 如何使用 Ember.RSVP.onerror 在没有错误处理程序的情况下报告被拒绝的 Promise 的异常

    我刚刚看了这个video http www youtube com watch v L9OOMygo1HI最近与 ember core 框架开发人员进行的小组讨论 在视频中 每个小组成员都被要求分享一个通用的调试技巧 Tom Dale 调用
  • 钩子中的 React 类组件的 this.props.history.push('/some_route') 相当于什么?

    我正在努力实现这个目标 import isAuthorized from somewhere async componentDidMount const authorized await isAuthorized if authorized
  • 正则表达式模式与 ruby​​ on Rails 的形式

    使用 form for 时是否支持模式属性 我正在尝试组合正则表达式模式以确保电话号码的格式正确 我的问题是模式属性不会仅采用正则表达式字符串 doesnt work 因此 当我将正则表达式写为字符串时 它会导致问题 例如必须转
  • 通过 Bash 传递命令行参数

    在温习 bash 时 已经有一段时间了 我惊讶地发现执行这段代码 另存为 script sh echo Arg 0 to script sh 0 echo Arg 1 to script sh 1 function echo args ec
  • 远程注册

    我知道关于远程注册表访问已经讨论过几次 但我找不到任何关于如何实现这一点的好例子 我确实找到了http www codeproject com KB cs cpimpersonation1 aspx http www codeproject
  • 如何拦截Hibernate生成的SQL?

    对于一个像老大哥一样工作的安全系统 比如受监视的强制访问控制 我们必须拦截并处理 hibernate 生成的所有 select 语句 我们将用户 时间戳和 sql 选择存储在数据库中 以便使用其他工具进行一些分析 这些信息可以确定用户试图查
  • SignalR WebRTC WebSocket 已处于 CLOSING 或 CLOSED 状态

    我想测试运行 SignalR 和 WebRTC 的最简单实现 我将代码托管在https github com foyzulkarim WebRtc https github com foyzulkarim WebRtc 我制作了两个不同的文
  • 在 AngularJS 中集成 jQuery 插件的正确方法

    我想知道将 jQuery 插件集成到我的 Angular 应用程序中的正确方法是什么 我找到了几个教程和截屏视频 但它们似乎适合特定的插件 例如 http amitgharat wordpress com 2013 02 03 an app
  • 优化 iPhone / iPod touch 上的二进制应用程序大小

    我知道用户只能通过 3G 下载最多 20MB 而我的构建 发布 iphoneos 显示我的应用程序为 26MB 我正在链接到 Three20 iPhone 框架 这是提交到 App Store 时计入 20MB 最大值的最终大小吗 我能做些
  • Angular 2 中的条件验证

    Angular 2 中的验证非常简单 这非常棒 然而 如果选择了其他字段 如何将必填字段设置为可选字段 这是我的规则 this contractsFilter this fb group selectedContractType Valid
  • 如何从url中提取域名?

    如何使用 bash 从 url 中提取域名 喜欢 http example com http example com 到 example com 必须适用于任何 TLD 而不仅仅是 com 您可以使用简单的AWK方式提取域名 如下所示 ec
  • 如何将整数放入数字数组[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想将像 123456 这样的数字放入数字数组中 您能给我一个关于该过程的提示吗 我可以定义一个元素数量未知的数组吗 首先计算数字的个数
  • UWP 应用程序 WebView 泄漏内存,无法清除图像

    Problem WebView 加载图像后不释放内存 如果所有 WebView 实例都被销毁几秒钟 内存似乎会被释放 我们从 XAML 树中删除并清除了代码中的所有引用 我们在调试器中检查了当时所有实例都已释放 这个解决方案是有问题的 因为
  • 变量重定义,嵌入式c

    我正在开发一个嵌入式 c 项目 并且遇到全局变量重新定义的问题 我已将函数声明和定义分成几个 h 和 c 文件 其中许多函数需要访问全局变量 这些变量在 global vars h 中定义 因此 在头文件的开头 ifndef define
  • 在 C++11 中从 C++17 重新实现 std::map::try_emplace() ?

    std map try emplace http en cppreference com w cpp container map try emplace看起来非常方便和高效 但它仅在 C 17 中可用 是否可以在 C 11 中重新实现它 t
  • webpack-dev-server 断开连接并尝试重新连接...垃圾邮件

    我刚刚完成了我正在做的一个有角度的项目 但是我 注意到控制台中的某些内容 如果是的话我很想隐藏它 可能只是为了保持一切整洁 这是 webpack dev server 模块不断断开连接并尝试重新连接 并向我的控制台日志发送垃圾邮件 像这样
  • 使用“自定义用户模型”删除“webhook”错误(Django)

    我正在尝试配置 Django Stripe 订阅 现在尝试设置 webhook 以通过以下代码创建新的客户数据 views py import stripe from django conf import settings from dja
  • 如何使用 php cURL 下载文件并将其保存到本地路径

    我有一个网址如下 www domain com file asp File peoples csv 在浏览器中点击此 URL 时会强制下载文件 但我想使用 CURL 在本地路径上下载此文件 有什么办法吗 谢谢帮助 好的 找到解决方案了 分享
  • VIM 恢复上次搜索模式

    我重新映射 and 查找文件中的上一个和下一个模式 映射如下 nmap section
  • 获取多个元素的引用

    我有一堆动态创建的输入字段 tr td td tr