Javascript 角度5:错误错误:未捕获(承诺中):错误:无法分配给引用或变量

Javascript 角度5:错误错误:未捕获(承诺中):错误:无法分配给引用或变量,javascript,angular,html,angular5,ngfor,Javascript,Angular,Html,Angular5,Ngfor,在表中添加for循环时,我在Angular 5中遇到了一个错误。我试图找到原因,但他们不够清楚,我无法解决问题。我的代码和错误如下 <tr *ngFor="let template of templates; let j=index"> <td><b>Template {{j+1}}</b></td> <td><input class="form-control" [(ngModel)]="templa

在表中添加for循环时,我在Angular 5中遇到了一个错误。我试图找到原因,但他们不够清楚,我无法解决问题。我的代码和错误如下

<tr *ngFor="let template of templates; let j=index">
    <td><b>Template {{j+1}}</b></td>
    <td><input class="form-control" [(ngModel)]="template"/></td>
</tr>

模板{{j+1}}

让模板创建局部变量,而ngModel无法分配给局部变量。只能指定组件的属性(字段)

但您可以在组件中尝试:

public templates = ['test', 'test'];
public customTrackBy(index: number, obj: any): any {
    return  index;
}
模板:

<tr *ngFor="let template of templates; let j=index ;  trackBy:customTrackBy">
    <td><b>Template {{j+1}}</b></td>
    <td><input class="form-control" [(ngModel)]="templates[j]"/></td>
</tr>

模板{{j+1}}
这应该可以:

<tr *ngFor="let template of templates; let j=index">
  <td><b>Template {{j+1}}</b></td>
  <td><input class="form-control" [(ngModel)]="templates[j]"/></td>
</tr>

模板{{j+1}}

ngModel变量和ngFor参考变量不能相同。“模板”是什么类型的元素?。要显示值,您可以尝试[innerHTML]=“template”是否可以显示发生此错误的组件代码和行号?您的意思是它们不能完全相同?当数组(本例中的模板)不是对象的数组时,总是会发生此错误@A.Sakkeer@sixerss模板是一个字符串数组。通过这种方式,输入字段在输入第一个字母后会失去焦点。啊,是的。我知道原因了。感谢You@Jimmy基于以上评论,此答案不正确,请检查我的答案。然后接受其中一个。@fatemefazli你是对的。你的回答很酷。谢谢。你让我吸取了教训。