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

时间:2017-06-12 12:00:42

标签: angular

我已经知道我可以使用this method创建动态ngModel变量。这很有效,因为我试图基于列表生成一堆文本输入,然后在它们上面放置一个ngModel变量。我遇到的问题是我想为文本框分配一个初始值,所以它显示这个值(以及作为ngModel的值)然后显然用户可以在框中键入,更改值的ngModel变量。

虽然我无法找到办法。如果我为输入设置了一个值,它就会被清除。它还需要使用ngModel而不是2路数据绑定({{}}方法),因为我需要能够在以后引用该变量。

以下是我试图让它发挥作用。您可以假设“items”是字符串值的列表。

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

我对Angular和Web开发人员也很新,所以我可能会错过一些非常明显的事情,如果是这种情况我会道歉。无论我真的感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

@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;
        });

    }

}