簡體   English   中英

ngModel嵌套* ngFor的雙向綁定

[英]ngModel two way binding for nested *ngFor in angular

我的JSON看起來像:

 "assets" : [ 
        {
            "resourceName" : "keyboard",
            "characteristics" : {
                "serialNo" : "abc123",
                "brand" : "DELL"
            }
        }, 
        {
            "resourceName" : "Domain Account"
        }
    ]

我正在執行兩種方式綁定,以將html形式的serialNo和brand值顯示為輸入。 這是我的html輸入代碼

 <table border="0"> <tr *ngFor="let r of assets; let i=index"> <td>{{r.resourceName | uppercase}} :</td> <td *ngFor="let key of r.characteristics | keys;let in=index; trackBy:keys" > {{key | uppercase}}: <input name="r.characteristics[key]" value="r.characteristics[key]" [(ngModel)]="r.characteristics[key]">&nbsp;&nbsp; </td> </tr> </table> 

在我的表單中,對於兩個輸入字段,我都獲得了DELL的價值,這是品牌的價值。 我希望在序列號字段中顯示“ abc123”,在品牌字段中顯示DELL。 請參閱plnkr以獲得詳細的問題描述。

首先,在您的代碼段中看不到管道keys ,它應該如下所示:

@Pipe({ name: 'keys',  pure: false })

export class KeysPipe implements PipeTransform {
    transform(value: any, args: any[] = null): any {
        return Object.keys(value)
    }
}

另外,應正確設置name屬性:

HTML:

  <input name="someName[i]" [(ngModel)]="r.characteristics[key]">

矮人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM