Javascript 如何实现迭代、数组填充的角度2输入?

Javascript 如何实现迭代、数组填充的角度2输入?,javascript,angularjs,angular,ngmodel,Javascript,Angularjs,Angular,Ngmodel,我希望能够按顺序添加/删除项目,并将它们聚合到要发送到后端的数组中。数据如下所示: 顾客姓名:比利 订单:[比萨饼、汉堡、寿司] 找不到任何进入迭代输入绑定的SO答案或文档。有人试图这样做吗?模板代码: <div> <input type="text" name="name" title="name" placeholder="Customer Name" [(ngModel)]="customerName"/>

我希望能够按顺序添加/删除项目,并将它们聚合到要发送到后端的数组中。数据如下所示:

  • 顾客姓名:比利
  • 订单:[比萨饼、汉堡、寿司]
找不到任何进入迭代输入绑定的SO答案或文档。有人试图这样做吗?模板代码:

<div>
  <input 
    type="text" 
    name="name" 
    title="name" 
    placeholder="Customer Name" 
    [(ngModel)]="customerName"/>
</div>
<div *ngFor="let item of itemsInNewOrder; let i = index">
  <input 
    type="text" 
    name="order" 
    title="order" 
    [(ngModel)]="itemsInNewOrder[index]"/>
</div>

我看到一个问题。您应该使用在模板中声明的变量i

<div *ngFor="let item of itemsInNewOrder; let i = index">
  <input 
    type="text" 
    name="order" 
    title="order" 
    [(ngModel)]="itemsInNewOrder[i]"/> <------ HERE
</div>
模板:

<div *ngFor="let item of itemsInNewOrder; let i = index">
    <input 
      type="text" 
      name="order" 
      title="order" 
      [(ngModel)]="itemsInNewOrder[i].value"/>
  </div>

我发现了一个问题。您应该使用在模板中声明的变量i

<div *ngFor="let item of itemsInNewOrder; let i = index">
  <input 
    type="text" 
    name="order" 
    title="order" 
    [(ngModel)]="itemsInNewOrder[i]"/> <------ HERE
</div>
模板:

<div *ngFor="let item of itemsInNewOrder; let i = index">
    <input 
      type="text" 
      name="order" 
      title="order" 
      [(ngModel)]="itemsInNewOrder[i].value"/>
  </div>


D'oh!这起了作用,并产生了一个新问题。数据按预期输入,但是,现在每次在添加的字段中输入字符时,都会取消选择该字段,需要单击返回该字段。有什么想法吗?我想angular会进行一些更改检测,并在这个过程中再次以新的值呈现输入。答案就在ngforms中,有一个专门处理这些内容的库:D'oh!这起了作用,并产生了一个新问题。数据按预期输入,但是,现在每次在添加的字段中输入字符时,都会取消选择该字段,需要单击返回该字段。有什么想法吗?我想angular会进行一些更改检测,并在这个过程中使用新值再次呈现输入。答案在于ngforms,有一个专门处理这些内容的库: