获取多个元素的引用

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(使用前将#替换为@)

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

  • Angular 2 SPA Azure Active Directory JWT 问题

    想知道是否有 Azure Active Directory Angular 2 Adal 专家可以提供帮助 我的设置如下 具有三个应用程序注册的 Azure Active Directory 一种用于 Web API 一种用于 WPF 应用
  • Next.js TypeScript 错误:您没有安装所需的软件包[重复]

    这个问题在这里已经有答案了 我目前正在他们方便的 typescript starter 的帮助下构建一个基本的 nextjs 网站 使用开发时一切都运行顺利yarn dev直到大约 20 分钟前 每当我尝试运行时 我都会随机收到一条错误消息
  • 在响应模式下使用 CSS 更改元素顺序

    图1为桌面模式 下面两张图片和文字 总共三个div 图 2 是我希望它在移动浏览器 例如手机 中的显示方式 关于如何实现这一点有什么想法吗 我愿意接受任何建议 这个想法是让文本显示在图像上方 以最好地说明这两个图像的描述 在桌面版本中将文本
  • Angular 5 - ag-grid 18.0.1 - 边缘崩溃

    我一直在到处搜索 但无法找到与此相关的任何信息 很可能是因为 ag grid update 18 x 是新的 无论如何 似乎在将 ag grid 从 17 1 1 更新到 18 0 1 后 任何带有 ag grid 的页面最终都会导致 ED
  • 交替 div 使图像向左(偶数)或向右(奇数)

    我正在尝试更好地排列图像 而不仅仅是一列中的图像 请参阅附件中的示例 每篇文章的图像可以位于左侧和右侧 这是我的代码 HTML section class content list page section
  • Angular 4 在 @ViewChild 上使用 setter

    我有一个演示here https stackblitz com edit angular dgmnlf file app 2Fchild component ts 我正在尝试使用 ngIf 将元素添加到 DOM 后获取该元素的高度 我试图通
  • JavaScript 跨浏览器单击 HTML DOM 元素

    是否有可用的普通 JavaScript 跨浏览器函数能够触发 HTML DOM 元素 包括 div 等非表单元素 上的单击事件 大多数走这条路的人要么最终开发自己的事件管理系统 这并不难 但很烦人 要么在可用的功能范围内工作 如果所有浏览器
  • 如何设置引导开关的 css 颜色?

    如何在此引导开关中将蓝色更改为另一种颜色 我尝试更改输入元素的颜色和背景颜色 但它没有更改开关颜色 这是 html 和 bootstraplink https getbootstrap com docs 4 2 components for
  • RxJ 从 observable 中获取价值

    在组件中 singleEvent Observable
  • 使用 JSON 文件动态更新 HTML 内容?

    我想创建一个 JS 循环 使用 jQuery 来查看 JSON 文件 并根据是否 div ids 与 JSON id 值匹配 这需要易于扩展并且无论有多少人都可以工作 div 添加了盒子 我有一个 HTML 文件 设置如下 div clas
  • 类型“QueryFn”中不存在“查询”|角火2

    类型参数 query limitTolast number orderByKey 布尔值 不可分配给 QueryFn 类型的参数 对象文字只能指定已知属性 并且 QueryFn 类型中不存在 query 包 json angularfire
  • 在 IE10 中禁用捏合放大

    在 IE10 触摸模式下 我希望仅使页面的特定部分可缩放 其余的不应该 我找到了这个 http msdn microsoft com en US library ie hh772044 aspx http msdn microsoft co
  • 表单提交后 Angular2 更新视图

    我正在使用 Angular2 创建一个简单的 CRUD 应用程序 该应用程序由一个列出当前记录的表格和一个用于提交新记录的表格组成 提交表单后更新表格以反映新记录的正确方法是什么 这是我到目前为止所拥有的 export class Pers
  • canvas.getContext('2D') 返回空值

    我创建了一个画布并将其命名为getContext 方法 但它返回null为上下文 这是我使用的代码 我在控制台中得到了这个
  • 如何在 div 容器内的元素之间留出空间

    我有一个弹性容器 它将由元素动态填充 容器没有固定宽度 I use max width max content 并且可以包含我想要的任意数量的元素 问题是我需要这些元素之间的间距 但不需要元素和容器之间左侧和右侧的间距 当然我可以用 ele
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 如何检查元素的内容是否为空,如果是,则在 jquery 中删除该元素

    我目前正在尝试选择某个 div 内没有内容的任何 h2 元素并将其删除 这是我的 html 代码 div class skipToContainer h2 class vidSkipTo Hello h2 h2 class vidSkipT
  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • xpath:选择中断标签之前和之后的文本节点

    考虑以下因素 混合 br and br text1 br text2 br text3 br text4 br text5 如何找到每个文本节点 我正在考虑符合 br 标签之前或之后的条件的东西 但不确定是否 br and br 在 xpa
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试

随机推荐

  • 如何使用 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