如何为材料表与单元格内的下拉菜单设置正确的绑定?

2024-04-25

我目前有一个角度材料表,它从我拥有的 api 端点返回值。目前,它返回正确的值,但我有选择下拉列表的单元格除外。

这是我的材料表选择下拉列表的片段:

 <div class="matTable-container">
         <mat-table [dataSource]="dataSource">
            <ng-container matColumnDef="Active">
                <mat-header-cell *matHeaderCellDef > {{ 'Active' | translate}}? </mat-header-cell>
                <mat-cell class="is-active" *matCellDef="let product">
                    <mat-form-field>
                        <mat-select>
                            <mat-option *ngFor="let active of activeTypes" [value]="product._isActive">{{product._isActive}}</mat-option>
                        </mat-select>
                    </mat-form-field>
                </mat-cell>
            </ng-container>
            <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
            <mat-row *matRowDef="let row; columns: displayedColumns; let even = even; let odd = odd"  [ngClass]="{'table-even': even, 'table-odd': odd}"></mat-row>
        </mat-table>
        </div>

在上面的示例中,尽管我指定了,但目前它是绑定值 ['Yes', 'Yes'] 而不是 ['Yes','No']activeTypes = ['Yes', 'No'];。它似乎显示了从 api 返回的值和现有值,其中“是”正在替换“否”。

在这种情况下,如何确保绑定正确显示并且下拉列表中的值正确,其中下拉列表中的值应为 ['Yes','No'] 并且绑定/选定的默认值应为 'Yes '对于这个特定的项目?

我上面做错了什么?


你应该绑定到mat-option数据来自active这是由创建的*ngFor="let active of activeTypes".

<mat-option *ngFor="let active of activeTypes" [value]="active">{{active}}</mat-option>

并将真实数据绑定到mat-select via [(ngModel)]

<mat-select [(ngModel)]="product._isActive">
  ...
</mat-select>

对于反应式表单,您应该在创建表单控件时为其分配实际值,并将此表单控件分配给mat-select通过绑定名称formControlName.

下面是我创建的一个示例formArray基于数据源和表单数组的绑定索引(与行索引相同)mat-select via formControlName.

<form [formGroup]="form">
  <mat-table #table [dataSource]="dataSource" formArrayName="test">
    ...
    <ng-container matColumnDef="active">
      <mat-header-cell *matHeaderCellDef> Active </mat-header-cell>
      <mat-cell *matCellDef="let element; let i = index;">
        <mat-select [formControlName]="i">
          <mat-option [value]="active" *ngFor="let active of activeList">
            {{ active }}
          </mat-option>
        </mat-select>
      </mat-cell>
    </ng-container>
    ...
  </mat-table>
</form>

this.form = this.fb.group({
  test: new FormArray(this.dataSource.map(item => new FormControl(item.active)))
});

参考工作demo https://stackblitz.com/edit/angular-riepzk?file=app/table-basic-example.html and 反应式演示 https://stackblitz.com/edit/angular-riepzk-rp5jbf?file=app/table-basic-example.html.

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

如何为材料表与单元格内的下拉菜单设置正确的绑定? 的相关文章

随机推荐

  • awk 计数频率

    嘿 我想统计 awk 中某一列的数据量 一个示例数据集是 2 5 8 1 3 7 8 5 9我想计算第二列中 5 的出现频率 这就是我尝试过的方法 但没有成功 total 0 for i 1 i lt NF i if i 2 if i 5
  • 推送通知未注册到 iOS 13 上的应用程序

    我构建了我的应用程序并在其中放置了一个断点didRegisterForRemoteNotificationsWithDeviceToken但它没有被触发 它在其他版本的 iOS 上运行良好 这是 iOS 13 中的错误还是我错过了 iOS
  • HTML:相对于图像的中心图像标题?

    我想编写 HTML 来对齐图像标题相对于图像的中心 我想对齐图片和标题在一起向左转 无论包含元素的宽度如何 这都应该是正确的 这是我到目前为止所拥有的 unknown containing element div style text al
  • Ubuntu DEB 安装程序使所有 Java 应用程序具有相同的图标

    我已经为基于 Debian 的系统创建了 Java 应用程序的 DEB 安装程序 在我的 DEB 包中 我使用 desktop 文件 如下所示 Desktop Entry Encoding UTF 8 Version version Typ
  • SAP JCo 使用 Java 在 SAP 系统中创建记录

    我正在尝试使用从 ABAP 获得的功能和结构在 SAP 系统中创建一个条目 我指的是这个链接在 SAP 中创建采购信息记录 https stackoverflow com questions 8534602 creating purchas
  • 收到“错误”:“未知的身份验证策略\“jwt \””

    我正在使用 Express Mongoose Passport 和 JWT 实现授权功能 我可以正常注册用户 我能够验证并生成 JWT 我可以在 JWT 站点上解析它 但由于某种原因 我收到未知的身份验证策略错误消息 我将所有代码块放在 P
  • 使用 pysam.TabixFile 注释读取的 Python 脚本中的处理速度振荡

    最初的问题 我正在用 python 3 5 编写一个生物信息学脚本 它解析一个大的 排序和索引的 bam https samtools github io hts specs SAMv1 pdf表示在基因组上对齐的测序读数的文件 将基因组信
  • Spring MVC 3.0 基本身份验证实现

    我目前正在使用 ASP NET 的 Spring MVC 框架将我的 Web 应用程序转换为 Java 不过学习它的好方法 我需要在我的应用程序中实现身份验证 请告诉我我的方法是否足够好和专业 以及如果不是 最好的做法是什么 首先 我正在编
  • TypeScript 传递导入 ES 库

    我想确保我的代码不使用比 ES6 更新的库功能 因此 我的tsconfig json看起来像这样 compilerOptions lib es6 target es6 outDir dist rootDir src module commo
  • 使用 st_buffer 围绕一个地理点画圈

    我想使用都柏林机场周围 110 NM 海里 绘制一个圆sf包裹 稍后我将通过st intersect带有来自 ADS B 的飞行位置报告 我为 NM 定义了一个新单位 如下所示 library units library tidyverse
  • mysql错误1064

    我正在尝试使用以下代码创建一个表 CREATE TABLE IF NOT EXISTS entries id int 10 NOT NULL auto increment atom id varchar 512 NOT NULL title
  • 是否可以在 docker hub 的自动构建中添加环境变量?

    我想自动化我的构建过程 并且需要传递一个环境变量来运行Dockerfile 我想知道在 Dockerhub 中是否有任何方法可以做到这一点 我知道 docker cloud 有类似的东西 但我想知道 Dockerhub 中是否有这个功能 因
  • Swift-Mailer 错误,“给定邮箱中的地址 [] 不符合 RFC”

    我构建了一个简单的 PHP 联系表单 该表单应该通过 Swiftmailer 脚本发送邮件 问题是我不断收到此错误 未捕获的异常 Swift RfcComplianceException 与 message 给定邮箱中的地址 不符合 RFC
  • MySQL C++ 连接器使用 SELECT 查询获取字符串

    我是 C 上的 mysql 新手 之前在 PAWN 上做过 效果很好 但现在我遇到了问题 我正在尝试从 mysql 数据库获取密码 稍后再执行其余代码 然后我会得到十六进制代码 如果是的话 这是我得到的示例 0x59fcb0 当我重新启动程
  • “缺少可链接的主机!”为设计

    我安装了 Devise 但每当我尝试创建帐户时 事情似乎都会停止 完整的错误如下 Missing host to link to Please provide host parameter or set default url option
  • 使用Delphi Dll和一些问题

    我想使用Delphi制作的dll 它有这个功能 函数 CryptStr str Key AnsiString DecryptStr boolean AnsiString 标准调用 我将 Dll 复制到 bin debug 和应用程序根目录中
  • vb.NET 将 JSON 列表反序列化为对象

    我还没有找到我正在寻找的确切答案 所以我想我会尝试提出这个问题 我目前正在尝试使用 Json NET 将 JSON 字符串反序列化为 vb NET 中的对象 我之前已经通过设置适当的类 然后使用父类将字符串反序列化为对象来完成了一些工作 并
  • 您如何在网络上搜索与编程相关的信息? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 NoSQL 文档存储数据库有哪些实际用例?

    在过去的几天里 我一直在阅读文档并观看特定于 Mongo DB 的截屏视频 我不知道像这样的解决方案何时会比典型的 pg 或 mysql 环境更好 具体来说 我的问题是在什么情况下 有用例就很好 你会选择 nosql 路线 Thanks 许
  • 如何为材料表与单元格内的下拉菜单设置正确的绑定?

    我目前有一个角度材料表 它从我拥有的 api 端点返回值 目前 它返回正确的值 但我有选择下拉列表的单元格除外 这是我的材料表选择下拉列表的片段 div class matTable container div