为动态生成的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;
});
}
}
干杯,这是有道理的,我也考虑过以类似的方式做,我只是好奇,如果这是可能的模板。这应该是一个很好的解决方案,尽管如此谢谢! – procinct
使用Angular 2+,他们试图“迫使”开发人员将逻辑从模板移动到控制器,因此,我猜想,删除了''ngInit''指令。 –
哦,这很有趣,我不知道这是他们打算的方向。再次感谢您的帮助! – procinct