【发布时间】:2019-01-23 18:27:55
【问题描述】:
我有一块手表可以检查选中的标签:
watch: {
search (val) {
for (let i = 0; i < val.length; i++) {
this.form_data.products_credit.push({
product_id: val[i].id,
quantity: null,
package_size: null,
purchase_price: null,
warehouse_id: null
});
}
}
}
这很好,但是当用户选择例如 tag1 时会出现问题
this.form_data.products_credit 值等于:
[
{
product_id: 1,
quantity: null,
package_size: null,
purchase_price: null,
warehouse_id: null
}
]
之后如果用户选择了tag2,那么this.form_data.products_credit的结果将是:
[
{
product_id: 1,
quantity: null,
package_size: null,
purchase_price: null,
warehouse_id: null
},
{
product_id: 2,
quantity: null,
package_size: null,
purchase_price: null,
warehouse_id: null
},
{
product_id: 2,
quantity: null,
package_size: null,
purchase_price: null,
warehouse_id: null
}
]
我的期望:
我没想到在选择另一个标签后会发生重复,但这是正常的,因为我正在循环抛出它们。
我做了什么:
我曾尝试在循环之前清空我的products_credit,如下所示:
this.form_data.products_credit = []
在循环之前。
效果很好,但我不希望这样,因为它会对我的下一步产生副作用。
问题的一个工作示例:here
【问题讨论】:
标签: javascript vue.js ecmascript-6