为动态生成的ngModel Angular指定初始值(2/4)

问题描述:

我已经计算出我可以使用this method创建动态ngModel变量。这很好,因为我试图根据列表生成一堆文本输入,然后在其上放置一个ngModel变量。我遇到的问题是我想为文本框分配一个初始值,以便显示该值(以及作为ngModel的值),然后显然用户可以在该框中键入,更改该值ngModel变量。为动态生成的ngModel Angular指定初始值(2/4)

我无法解决这个问题。如果我为输入设置了一个值,它就会被清除。它还需要使用ngModel而不是2路数据绑定({{}}方法),因为我需要能够稍后引用该变量。

下面是我试图让它工作。您可以假设“项目”是一个字符串值的列表。

<ul> 
<li *ngFor = "let item of items"> 
    <input type = "text" [(ngModel)] = "input[item]" value = '{{item}}'> 
</li> 
</ul> 

我也很新的总体角度和web开发,所以我可能只是失去了一些东西很明显,如果这是我道歉的情况。无论我真的很感激任何帮助。

您应该在您的控制器中执行此操作。

@Component({ 
    // component configuration 
}) 
class MyController implements OnInit { 

    public input: Object = { 
     // your data 
    }; 

    public items: Array<Object> = [ 
     // your list of items 
    ]; 

    ngOnInit() { 

     this.items.forEach(item => { 
      input[item] = item; 
     }); 

    } 

} 
+0

干杯,这是有道理的,我也考虑过以类似的方式做,我只是好奇,如果这是可能的模板。这应该是一个很好的解决方案,尽管如此谢谢! – procinct

+1

使用Angular 2+,他们试图“迫使”开发人员将逻辑从模板移动到控制器,因此,我猜想,删除了''ngInit''指令。 –

+0

哦,这很有趣,我不知道这是他们打算的方向。再次感谢您的帮助! – procinct