在 Angular 5 中同时保存“id”和“name”

Posted

技术标签:

【中文标题】在 Angular 5 中同时保存“id”和“name”【英文标题】:Save both 'id' and 'name' in Angular 5 【发布时间】:2019-01-14 06:30:03 【问题描述】:

使用 Angular 5、Material 组件和 Firebase 处理项目。是否可以通过一个字段存储两个值。 下面是我的代码,我从客户端表中获取数据并在下拉列表中显示名称,但存储“client_id”。我也想用 client_id 存储 client_name。

<mat-form-field>
            <mat-select placeholder=" Select Client" formControlName="client_id" required>
               <mat-option *ngFor="let cli of clientsarray; let i = index " [value]="cli.prodid">cli.fname cli.lname</mat-option>
            </mat-select>
 </mat-form-field>

【问题讨论】:

而不是[value]="cli.prodid" 使用整个客户端对象[value]="cli" @JasonWhite 它工作正常但有点混乱我已经有客户端表,其中已经存储了客户端的全部信息。这是将整个数据存储在另一个表中的好方法吗? 【参考方案1】:

绑定到一个对象,在本例中为cli

<mat-option *ngFor="let cli of clientsarray; let i = index " [value]="cli">cli.fname cli.lname</mat-option>

【讨论】:

得到响应后,如果值变成了对象,那么如何显示选定的值? @AniketAvhad - 我不确定你的意思?您可以使用[(ngModel)](与任何其他控件一样)绑定mat-select 控件以设置选定值(对象)。然后你可以像在组件中使用它一样使用它。 查看实际问题stackblitz.com/edit/… 如果我设置 [value]= "obj" 并将 id 分配给选定的变量,那么它将不会显示第一个选项为选定的。 @AniketAvhad - 您必须将其视为对象。查看更新后的代码:stackblitz.com/edit/angular-pjqqcb-ab83tm

以上是关于在 Angular 5 中同时保存“id”和“name”的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 5 中使用文件上传保存 FormData

如何同时保存多个不同数量的数据?

Angular 材质:在下拉列表中获取所选值的 id

使用 Angular 4 保存 cookie

angular 5显示嵌套的问题和答案在它的父项下显示项目

angular 无法重置下拉框的值