如何实现迭代的、填充数组的Angular 2输入
How to implement iterated, array-filling Angular 2 inputs?
我希望能够在订单中添加/删除项目,并将它们聚合到要发送到后端的数组中。数据看起来像:
- 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>
添加新按钮的点击功能:
...firebaseStuff... .push({name: name, order: this.itemsInNewOrder})
不起作用。提前感谢!:)
编辑1:有2个按钮触发(分别):incrementItemsInNewOrder() {
this.itemsInNewOrder.push("")
}
decrementItemsInNewOrder() {
this.itemsInNewOrder.pop()
}
我看到一个问题。你应该使用你在模板中声明的变量i。
<div *ngFor="let item of itemsInNewOrder; let i = index">
<input
type="text"
name="order"
title="order"
[(ngModel)]="itemsInNewOrder[i]"/> <------ HERE
</div>
编辑
angular在输入并再次渲染它们时似乎在做变化检测,当这种情况发生时,你会失去焦点。
但是如果你把这些值包装到对象中,它就能工作了
组件:
itemsInNewOrder = [{value: 'Soda'}, {value: 'Burger'}, {value: 'Fries'}];
模板:
<div *ngFor="let item of itemsInNewOrder; let i = index">
<input
type="text"
name="order"
title="order"
[(ngModel)]="itemsInNewOrder[i].value"/>
</div>
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 用默认值填充数组的方法
- 在 Javascript 中使用 ForEach 填充数组对象时,我是否需要定义一个数组对象
- 用当前日期填充数组并继续向后
- 用字符串填充数组的最佳方法
- Javascript 填充数组使用 for 循环
- PHP 无法从选定的表中填充数组以json_encode并在 javascript 上接收它
- Javascript/JQuery 填充数组许多元素
- 将字符串添加到已填充数组的数组中
- jQuery根据第一个输入的文本框值填充数组命名的表单字段
- 更改Img属性时出现填充数组错误
- 用对象填充数组(在对象中定义)
- 如何填充数组循环JS
- 如何实现迭代的、填充数组的Angular 2输入
- 在Javascript中基于其他信息填充数组的最有效方法是什么?
- 从多个mongodb调用填充数组的范围问题
- 动态创建的带有填充数组的下拉列表不会使用angular更新
- 我如何填充数组与二进制数据流从websocket
- 填充数组类型嵌套对象时出现的问题
- 从lodash填充与常规数组填充数组时产生的不希望的结果