如何从表单数组的下拉框中获取选定的值

2024-03-05


<ng-container formArrayName="actors">
   <ng-container *ngFor="let actor of actors['controls']; let i = index">
      <ng-container>
        <div [formGroupName]="i">

          <div class="container mt-3">
            <div class="row justify-content-center">
               <label class="col-3 mt-2 text-end">Add Existing actor </label>
                  <div class="col-6" >
 
                    <!-- I want to get the value selected from this dropdown box -->
                    <select class="form-select form-select-sm d-flex justify-content-center">
                       <option *ngFor="let actor of existingActors" >
                             {{actor.firstName}} {{actor.lastName}}
                       </option>
                    </select>

我想从表单数组的下拉框中获取用户选择的值。但是当我使用 ngModel 时,它给了我一个错误。如何从下拉框中获取值而不循环遍历 TS 文件中的整个数组。


您可以拥有 FormControls 的 FormArray 或 FormGroup 的 FormArray。 (好吧,你也可以有一个 FormArray 的 FormArray 来管理多维数组,但这与你的问题无关)

如果您可以获得“简单变量”数组,例如[1,2,3] 或 ["a","b","b"] 如果您可以获得对象数组,则可以使用 FormControls 的 FormArray,例如[{id:1},{id:2}..] 你需要一个 FormGroups 的 FormArray

一个FormArray的FormGroup你使用的方式

<div formArrayName="actors">
   <div *ngFor="let group of actors.controls;let i=index"
        [formGroupName]="i">
        <input formControlName="id">
   </div>
</div>

请注意,在这种情况下您使用[formGroupName]="i"和里面formControlName

一个 FormArray 的 FormControls 你使用的方式

<div formArrayName="actors">
   <div *ngFor="let control of actors.controls;let i=index">
        <input [formControlName]="i">
   </div>
</div>

请注意,在本例中您在自己的输入中使用[formControlName]="i"

好吧,当我们有一个选择等于一个输入时

如果它是 FormGroups 的 FormArray

<div formArrayName="actors">
   <div *ngFor="let group of actors.controls;let i=index"
        [formGroupName]="i">

        <select formControlName="id">
          <option *ngFor="let actor of existingActors" [value]="actor.id" >
               {{actor.firstName}} {{actor.lastName}}
          </option>
        </select>

   </div>
</div>

如果它是 FormControls 数组

<div formArrayName="actors">
   <div *ngFor="let control of actors.controls;let i=index">

        <select [formControlName]="i">
          <option *ngFor="let actor of existingActors" [value]="actor.id" >
               {{actor.firstName}} {{actor.lastName}}
          </option>
        </select>

   </div>
</div>

不过要小心!!您想在 FormControl 中存储什么?因为这是指令[value]在选项中。如果您想存储数组参与者的属性,例如我想你的演员有一个你使用的属性“id”[value]="actor.id",但是您可以存储“整个对象演员”,即您使用的[ngValue]="actor".

关于存储整个对象的广告。如果是表单控件的 formArray 或 formGroup 的 FormArray,则可以在 FormControl 中独立存储对象。在第一种情况下,你会得到一些类似的东西formArray:[{id:..,first:name:..},{id:..,first:name:..},]在第二个中formArray:[id:{id:..,first:name:..},id:{id:..,first:name:..},]

此外,如果您存储整个对象,则在赋值和比较值时需要小心

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

如何从表单数组的下拉框中获取选定的值 的相关文章

  • 如何使用键盘和鼠标控制相机 - Three.js

    我在 WEB GL 中有一个带有 Three js 的 3D 环境 并且我曾经使用 Orbitcontrols js http codepen io nireno pen cAoGI http codepen io nireno pen c
  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 如何记录返回的事件发射器

    如何记录所发出的事件stream返回于MyFunc 与 JSDoc MyFunc description param Object opts description return Stream description function My
  • JavaScript 动画平滑滚动

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • 在 Angular 材质表上调用 renderRows()

    我试图在更新表中使用的数据后刷新我的 Angular 表 文档说 您可以通过调用其 renderRows 方法来触发对表的渲染行的更新 但它不像普通的子组件 我可以使用 ViewChild MatSort sort MatSort 因为我不
  • 访问 TypeScript 数组的最后一个元素

    TypeScript 中有访问数组最后一个元素的符号吗 在 Ruby 中我可以说 array 1 有类似的东西吗 您可以通过索引访问数组元素 数组中最后一个元素的索引将是数组的长度 1 因为索引是从零开始的 这应该有效 var items
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • 更改离子搜索栏的占位符和清晰图标颜色不是全局的吗?

    我有两个离子搜索栏 我只需要更改其中之一的占位符和清除图标颜色
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • ES6 模板文字的延迟执行

    我正在玩新的ES6 模板文字 http tc39wiki calculist org es6 template strings 我首先想到的是String format对于 JavaScript 所以我开始实现一个原型 String pro
  • 您如何看待引导模式触发器的相应回调?

    On 引导模态 http getbootstrap com javascript modals 我们知道我们可以为触发器绑定事件 例如show or hide using show shown hide hidden 但此事件绑定仅适用于一
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1

随机推荐

  • 更改 pdf 和非 Google 文档(EDU 域)的 acl

    我在尝试从 Google Apps 脚本 Google Apps for Education 更改文件所有权时收到此错误 GDataServiceException您尚无法更改该项目的所有者 我们正在努力 相同的代码适用于 Google A
  • 如何在mysql中存储类型可以是数字、日期或字符串的数据

    我们正在开发一个监控系统 在我们的系统中 值是由运行在不同服务器上的代理报告的 报告的观察结果可以是如下值 一个数值 例如 CPU USAGE 55 表示 55 的 CPU 处于使用状态 使用 某些事件被解雇 例如 备份完成 状态 例如SQ
  • PHP 中 preg_replace() 的字符串的最大长度?

    我发现如果我尝试在很长的字符串上使用 preg replace PHP 会向我的浏览器返回一个空页面 而不显示错误消息 我能够在我的测试环境中重现这个错误 preg replace 可以处理的字符串的最大长度是多少 是否可以增加这个长度 对
  • Firestore 查询 - 一对多关系

    我将开发 Android 移动应用程序并使用 Firebase 作为后端 我是 NoSql Firestore 的新手 在我的应用程序中 用户有很多主题 一个主题有很多帖子 帖子有很多评论和一张图片 用户也有很多追随者 在这种情况下 我如何
  • C# 4.0:将动态转换为静态

    这是一个与我问的另一个问题相关的分支问题here https stackoverflow com questions 2783616 net 4 0 dynamic object used statically 我将其分开 因为这实际上是一
  • Visual Studio 第一次启动需要很长时间

    我在 Windows 7 64 位计算机 RAM 为 6 GB 上下载并安装了 Visual Studio 2013 Profession Trial 但是 当我第一次启动它时 它说 我们正在准备就绪 感谢您的耐心等待 它已经持续了大约一个
  • 无框架的 C++ GUI

    据我了解 没有办法让 C GUI 设计器将您的应用程序作为一个独立的可执行文件发布 所有 3rd 方框架都以 dll s 等形式添加依赖项 无论是 MFC Qt WTL wxWidgets GTK 这让我只剩下一种解决方案 使用 Win32
  • 为什么八进制序列 '\0101' 不等于十进制 65?

    考虑这个 C 程序 unsigned char c2 0101 printf c d n c2 c2 我相信输出应该是 A 65但实际输出是1 49 推理 字符常量中以 0 作为前缀 声明为八进制格式 而 101 的八进制值为 65 那么
  • 定时功能

    警告 这有点递归 我回答了这个问题 Python 如何获取列表中最长元素之前的所有元素 https stackoverflow com questions 8740018 pythonhow can i get all the elemen
  • YouTube 分析 API 行为空

    我知道这个问题以前已经被回答过 但我似乎有一个不同的问题 直到几天前 我对 YouTube 的查询从未出现过问题 然而现在 每次我查询任何视频上的数据时 实际视频数据行都会以单个空数组的形式返回 这是我的完整代码 coding utf 8
  • flutter sqlite 事务使用错误警告数据库已被锁定

    我正在开发一个使用 sqlite 和事务的移动应用程序 下面的代码是通过使用sqlite事务保存模型到多个数据库表来从用户那里获取订单信息 Future
  • 如何使用 npm install 和 webpack 来使用 normalize.css?

    我正在将 webpack 与 ReactJS 一起使用 并试图弄清楚如何在 npm 安装后使用 normalize css https necolas github io normalize css https necolas github
  • 如何使用注释将控制器定义为服务?

    这似乎是使用控制器作为服务的最快 最简单的方法 但我仍然缺少一个步骤 因为它不起作用 这是我的代码 控制器 服务 Test TestBundle Controller TestController php use Symfony Bundl
  • Psycopg2execute_values 以文本形式发送所有值

    我在 postgres 中有这张表 CREATE TABLE target a json b integer c text id integer CONSTRAINT id fkey FOREIGN KEY id REFERENCES pu
  • 在 drupal 7 中更改管理员密码

    我正在使用内置的 Drupal 7 用户模块 用户注册 忘记密码电子邮件等等 我忘记了我的管理员密码 我可以访问托管在 1and1 com 上的网站 也可以访问 mysql 是否可以通过 SQL 更改密码或电子邮件地址 以便我可以访问管理页
  • 更改状态时延迟加载 Angular 组件脚本

    这个问题已经占用了最后一天左右的时间 我一直在尝试让我的 AngularJS 应用程序延迟加载每个状态组件的脚本文件 我正在 Angular 中从事一个大型项目 并且index html文件已经变成了100多个
  • 将 Django-taggit 与 django-rest-framework 一起使用,我无法保存我的标签

    我试图弄清楚为什么当我提交表单时 我的标签没有保存在我的数据库中 django rest framework 和 Django taggit 也很新 我想我做错了什么 首先 在使用其余框架创建 API 之前 我使用通用视图 CreateVi
  • Python 中的 Bland-Altman 图

    是否有可能制作一个布兰德 奥特曼情节 http en wikipedia org wiki Bland E2 80 93Altman plot在Python中 我似乎找不到任何相关信息 此类情节的另一个名称是Tukey 均差图 Exampl
  • 有哪些 MATLAB 能做而 R 不能做的事情? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从表单数组的下拉框中获取选定的值