【问题标题】:Vuejs model inserting data to multiple modelsVuejs模型将数据插入多个模型
【发布时间】:2021-04-09 17:18:32
【问题描述】:

我已经创建了动态属性,
数组中有三个产品,那么每个产品都有自己的属性。
最初一切正常,一旦我运行“复制属性”代码将属性复制到所有其他产品,输入模型也开始将模型值插入所有其他属性。

for(let i in this.products) {
  if(i != this.product_active) {
    this.products[i].attributes = this.products[this.product_active].attributes
  }
}

这是我为这个问题创建的小提琴:
https://jsfiddle.net/sukhcha_in/4o9k2ezn/
在这个小提琴中,您将看到三个具有自己属性的产品(输入模型工作正常), 现在按下“复制属性”按钮,活动产品的属性也会被复制到其他产品。
现在向任何产品输入数据,输入模型将向所有产品输入相同的数据,而不是选择的产品。它完全忽略了选定的产品。
我的代码有问题吗?

【问题讨论】:

    标签: vue.js vuejs2


    【解决方案1】:

    您将相同的属性对象复制到所有三个产品,因此属性是共享的。 相反,您应该在复制时创建对象的新副本,例如。 G。像这样使用spread syntax:

    for(let i in this.products) {
        if(i != this.product_active) {
            this.products[i].attributes = {... this.products[this.product_active].attributes}
        }
    }
    

    【讨论】:

    • 谢谢你,像魅力一样工作。以前不知道传播语法:)
    猜你喜欢
    • 2011-04-14
    • 2012-06-11
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多