解决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 ...
随机推荐
- 多线程编程 CreateThread(解释了TContext)
function CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; ...
- lzugis——Arcgis Server for JavaScript API在自己的定义InfoWindow
你看到这个标题嫌烦.因为我最近一直与研究问题,相关文章使这些也可以只,同时要读我文章的朋友.我的文章能够给你带来帮助. 在相关的内部的前两篇文章,达到InfoWindow经div实现的东西,成Info ...
- Delphi 禁用x64位系统文件重定向功能
在X64系统里面,一些特殊的目录和特殊的注册表键被分为2个独立的部分.对于文件系统来说, %systemroot%\system32 目录被保留给64位文件使用,而32位文件会被重定向到%s ...
- 使用google自带包实现下拉刷新功能
android 实现下拉刷新有非常多开源的源代码能够用 比方 :PullToRefreshListView 使用起来也非常方便 如今还能够直接使用google libs以下的 android-sup ...
- FastDFS安装、配置、部署(三)-Storage配置具体解释
1.基本配置 # is this config file disabled # false for enabled # true for disabled disabled=false # the n ...
- nginx配置http跳转https
配置相当简单,在配置文件头部加一行,如下: server { listen *:;//监听80端口 https://www.chenruhui.com$request_uri;//需要跳转的网页 } ...
- c# 守护进程,WPF程序自守护
原文:c# 守护进程,WPF程序自守护 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/79035246 如何 ...
- 好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果
原文:好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https:// ...
- android studio中使用9-patch报错mergeDebugResource及Duplicate resources错误处理
由于项目中新导入了两张图片,进行9-patch之后,文件名称包含XXXX.9.png , 而android studio 对资源文件的名称有要求仅支持[A-Z][a-z][0-9]格式 而XXX.9 ...
- jquery 用json设置css
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...