ngModel双向的角度

ngModel双向的角度

问题描述:

我的JSON嵌套* ngFor约束力的样子:ngModel双向的角度

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

我进行双向对HTML形式显示的SerialNo和品牌价值作为输入绑定。这里是我的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”在serialNo字段和DELL品牌字段中显示。有关确切的问题描述请参考plnkr。提前感谢。

+3

你确切的问题是什么? – jesusverma

+0

请显示您正在使用的'keys' Pipe的相关代码。 – Pengyy

+1

你的问题是什么?你想要这个输入来查看/更改'r.characteristics [key]'的值吗? –

首先,我没有在你的代码段管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]"> 

plunker

+0

它在表单标签内不工作。请参阅plunker.https://plnkr.co/edit/6LM20uU26NQRYNenRo8c?p =预览 – pres

+0

发布您的trackBy函数(名为'keys')也会...如果有的话。据我所知,trackBy将只能使用一个函数 - – diopside

+1

@pres,请参阅我更新的plunker – Vega