解决vuejs 创建数据后设置对象的属性实现不了双向绑定问题
抛出踩坑:vue创建后的数据,自定义设置对象的属性,实现不了双向绑定
当业务场景,需要在请求接口数据新增自定义的属性
let foodList = [
{title: '回锅肉', price: 99.0},
{title: '油焖大虾', price: 199.0}
];
我们要做数量增加时候,后自定义添加数量属性quantity:
// 添加自定义属性数量quantity
foodList.forEach(item => {
item.quantity = 0;
});
/**
[
{ title: '回锅肉', price: 99, quantity: 0 },
{ title: '油焖大虾', price: 199, quantity: 0 }
]
*/
我们需要对数量增加的时候,quantity是实现不了双向绑定的,比如:
// 特殊菜数量添加
quantityAction(type, item) {
// 加法
if (type === 'add') {
item.quantity++
} else {
// 减法
if (item.quantity > 0) {
item.quantity--
}
}
}
// 几时quantity是在增减,实际页面是达不到双向绑定的
解决方法:
这时候需要用$set方法,设置对象的属性。
如果对象是响应式的,确保属性被创建后也是响应式的,同时触发视图更新。这个方法主要用于避开 Vue 不能检测属性被添加的限制。
vm.$set( target, key, value )
- 参数:
- {Object | Array} target
- {string | number} key
- {any} value
- 返回值:设置的值。
用法:
foodList.forEach(item => {
this.$set(item, 'quantity', 0)
});
这样后面创建的属性就可以达到双向绑定了!
解决vuejs 创建数据后设置对象的属性实现不了双向绑定问题的更多相关文章
- 组件的通信 :provide / inject 对象进入后,就等于不用props,然后内部对象,直接复制可以接受数组,属性不能直接复制,可以用Object.assgin覆盖对象,或者Vue的set 双向绑定数据
组件的通信 :provide / inject 对象进入后,就等于不用props,然后内部对象,直接复制可以接受数组,属性不能直接复制,可以用Object.assgin覆盖对象,或者Vue的set 双 ...
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...
- 解决sqlite删除数据后,文件大小不变问题(VACUUM)
删除表格的全部数据: DELETE FROM [Name] 当在sqlite中删除了大量数据后,数据库文件的大小还是那样,没有变.原因是:从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的” ...
- 解决sqlite删除数据后,文件大小不变问题 转载
原文地址:http://blog.csdn.net/yangchun1213/article/details/7656146 说了这么多,没进主题,我的主题是给Sqlite在删除数据后擦屁股. 大 ...
- 域对象中属性变更及感知session绑定的事件监听器
域对象中属性的变更的时间监听器就是用来监听ServletContext,HttpSession,HttpServletRequest这三个对象中的属性变更信息事件的监听器.这三个监听器接口分别是Ser ...
- Winfrom 中 ComboBox 绑定数据后设置选定项问题
在为 ComboBox 当定数据的时候,如果遇到界面显示需要用文本,而获取选定项的值时需要用数字,我们就很习惯使用 DataSource 来进行绑定. 例如以下代码: List<TextVal ...
- mybatis插入数据后返回对象id
1.插入的为对象,成功插入后,会返回到指定的字段id中,@Options(useGeneratedKeys=true,keyColumn="id").
- Python3基础 setattr 设置对象的属性值,如果属性不存在就创建
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- T对象序列化后T对象中属性字段不见了?
序列化:JsonConvert.SerializeObject(T) 直接在类的上面添加[Table("表名")] 在类上添加属性[DataContract] 在属性上添加属性[D ...
随机推荐
- 黑科技 —— Type-C 接口与 USB3.1
Type-C 接口解决了 USB 永远插不准的世界性难题. 小开科普一分钟:究竟USB Type-C是何方神圣? 1. Type-C USB Type-C,简称是 USB-C.Type-C 只是 US ...
- VC命令行编译中出现Invalid switch错误的解决办法
作者:朱金灿 来源:http://blog.csdn.net/clever101 使用makefile编译gdal库出现一个错误: cd .. if exist./gdal19_i_D.lib del ...
- 还在使用vc6.0吗??vs2010吧
每个人在面对新的事物的时候,总是充满了排斥感,当vista和win7来临的时候,我们还在留恋xp,说xp是如何的好,win7是如何的不给力,当然,我们必须承认,xp是一款优秀的操作系统,这个我们无法否 ...
- 新浪微博Python客户端接口OAuth2
Keyword: Python Oauth2 微博 sina weibo #!/usr/bin/env python # -*- coding: utf-8 -*- __version__ = '1. ...
- 使用python3的base64编解码实现字符串的简易加密解密
import base64 copyright = 'Copyright (c) 2012 Doucube Inc. All rights reserved.' def main(): #转成byte ...
- c#调api串口通讯
原文:c#调api串口通讯 在调试ICU通信设备的时候,由于串口通信老出现故障,所以就怀疑CF实现的SerialPort类是否有问题,所以最后决定用纯API函数实现串口读写. 先从网上搜索相关代码(关 ...
- C# WinForm 文件上传下载
/// <summary> /// WebClient上传文件至服务器 /// </summary> /// <param name="fileNamePath ...
- 介绍MFC参与设计模式框架(一个)
最近我读了一些相关MFC参与设计的花纹纸架,为了帮助您了解MFC在此框架总结,我们希望对大家有帮助. 简介设计模式 设计模式是一套被重复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计 ...
- cocos2dx 2.2.3 xcode5.0,新mac项目错误
cocos2dx 2.2.3 xcode5.0,新建mac项目报错 Undefined symbols for architecture x86_64: "cocos2d::extens ...
- Hadoop MapReduce编程入门案例
Hadoop入门例程简介 一个.有些指令 (1)Hadoop新与旧API差异 新API倾向于使用虚拟课堂(象类),而不是接口.由于这更easy扩展. 比如,能够无需改动类的实现而在虚类中加入一个方法( ...