当前位置: 首页 > 知识库问答 >
问题:

在Vue 2.0中添加对象属性

邵修诚
2023-03-14

我正在创建一个简单的购物车,用户可以在其中添加他们希望添加到购物车中的商品数量。

我有一个门票数组,我正在传入我的页面:

"tickets":[  
  {  
     "id":1,
     "title":"cheap",
     "price":"5.00"
  },
  {  
     "id":2,
     "title":"VIP",
     "price":"19.99",

  },
  {  
     "id":3,
     "title":"General",
     "price":"9.99"
  }
]

总的想法是,我会为用户提供一个输入,以表明他们想要购买的数量。一旦输入发生变化,一个新的“数量”属性将被添加到ticket对象中。

我已经阅读了文档并意识到:

Vue不允许向已创建的实例动态添加新的根级反应性属性。但是,可以使用Vue.set(对象、键、值)方法将反应性属性添加到嵌套对象

我通常理解它应该如何工作,但我不知道如何在我的组件中实际做到这一点。

具体来说,如何将正确的票证对象和输入值传递给方法?

在我的模板中,我循环遍历票证:

<tr v-for="ticket in tickets">
  <td>{{ticket.title}}</td><td><input id="quantity" @change="update"</td>  
</tr>

要获得元素值,我可以这样做:

//script
update: function(e){
 quantity = e.target.value
}

但是如果我这样做,我如何访问特定的票对象?

或者,我可以传递票证实例:

<td>{{ticket.title}}</td><td><input id="quantity" @change="update(ticket)"></td> 

 //script
update: function(ticket){
 //access ticket object...
}

但是如果我这样做,我如何访问数量?

共有1个答案

秦胡媚
2023-03-14

使用特殊的< code>$event变量

<tr v-for="ticket in tickets">
  <td>{{ticket.title}}</td><td><input id="quantity" @change="update(ticket, $event)"</td>  
</tr>

文档链接:https://v2.vuejs.org/v2/guide/events.html#Methods-in-Inline-Handlers

 类似资料:
  • 问题内容: 这件事困扰了我一段时间。我为什么不能做: …虽然我可以执行以下操作? 这是什么规则?您能给我介绍一下吗? 问题答案: 您可以向具有的任何对象添加属性。 例如,没有它。 字符串和其他简单的内置对象也没有它。 使用类也没有它。 除非前面的声明适用,否则用定义的类都具有它。 如果使用/的对象没有/ ,通常是为了节省空间。例如,如果有一个命令,那就太过分了- 想象一下一个非常短的字符串的膨胀程

  • 问题内容: 嗨:在我们的应用程序中,我们已经从数据库中检索了一些数据,例如,表中包含以下字段:id,名称,年龄,地址,电子邮件。 然后,我们将根据客户提供一些这些属性。 如果客户需要ID,名称,我们将获得ID名称;如果客户需要ID,名称,年龄,则将获得ID,名称,年龄。 现在,我们想创建一个包装这些属性的类。但是,我们不知道确切要求哪个字段。 我可以在这里用Class替换地图吗? 问题答案: 如果

  • 基本上,我想知道如果变量为false,但来自对象内部,是否可以避免将属性添加到对象中。假设我有一个物体: 现在我想重写同一个对象,但我只想在新变量(布尔值)为真的情况下添加第二个属性。问题是我如何做到这一点,例如使用这样的三元运算符: 我想要避免的是: 因为我不想在add==false的情况下使用条索引。此外,赋值必须在对象的内部(这是一个关于它是否可行的问题),因为这样的东西不是我想要的: 解决

  • 问题内容: 考虑以下代码示例: 从PHP 5.3开始,这将产生(类似)以下输出: 但是下面的代码: …仅发出错误: 为什么将这些属性“添加”到对象?请注意,它们没有定义为手册页DateTime`上的类的一部分。 问题答案: 发生了一些魔术,但这很简单。 DateTime类没有您要访问的公共变量“date”。但是,作为PHP工作方式的副作用,在该类上调用print_r或var_dump时会创建一个变

  • 问题内容: (用Python shell编写) 为什么不允许对象向其添加属性? 问题答案: 请注意,实例没有属性: 一个在派生类中说明此行为的示例: 引用以下文档: […]声明采用一系列实例变量,并在每个实例中仅保留足够的空间来为每个变量保存一个值。因为未为每个实例创建空间,所以节省了空间。 编辑:要从评论中回答ThomasH,OP的测试类是“旧式”类。尝试: 您会注意到有一个实例。对象类可能没有

  • 问题内容: 我要返回一个Mongoose文档,并希望在发送之前向其中添加一些元数据。但是,我无法添加任何属性,我不确定为什么。我检查了它是否可以使用Object.isExtensible(doc)扩展。 可能是什么问题? 问题答案: 啊..我的对象是一个Mongoose文档,不允许添加属性。解决方案是将返回的文档转换为普通对象,或者在查询中调用lean()。