博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决vuejs 创建数据后设置对象的属性实现不了双向绑定问题
阅读量:5218 次
发布时间:2019-06-14

本文共 1239 字,大约阅读时间需要 4 分钟。

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/yibowanbo/article/details/80233051
抛出踩坑:vue创建后的数据,自定义设置对象的属性,实现不了双向绑定
当业务场景,需要在请求接口数据新增自定义的属性

let foodList = [

{title: '回锅肉', price: 99.0},
{title: '油焖大虾', price: 199.0}
];
1
2
3
4
我们要做数量增加时候,后自定义添加数量属性quantity:

// 添加自定义属性数量quantity
foodList.forEach(item => {
item.quantity = 0;
});

/**

[
{ title: '回锅肉', price: 99, quantity: 0 },
{ title: '油焖大虾', price: 199, quantity: 0 }
]

*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
我们需要对数量增加的时候,quantity是实现不了双向绑定的,比如:

// 特殊菜数量添加

quantityAction(type, item) {
// 加法
if (type === 'add') {
item.quantity++
} else {
// 减法
if (item.quantity > 0) {
item.quantity--
}
}
}
// 几时quantity是在增减,实际页面是达不到双向绑定的
1
2
3
4
5
6
7
8
9
10
11
12
13
解决方法:
这时候需要用$set方法,设置对象的属性。

如果对象是响应式的,确保属性被创建后也是响应式的,同时触发视图更新。这个方法主要用于避开 Vue 不能检测属性被添加的限制。

vm.$set( target, key, value )

- 参数:
- {Object | Array} target
- {string | number} key
- {any} value
- 返回值:设置的值。
1
2
3
4
5
6
用法:

foodList.forEach(item => {

this.$set(item, 'quantity', 0)
});
1
2
3
这样后面创建的属性就可以达到双向绑定了!
————————————————
版权声明:本文为CSDN博主「一波万波」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yibowanbo/article/details/80233051

转载于:https://www.cnblogs.com/shaozhu520/p/11382804.html

你可能感兴趣的文章
如何在TWaver Flex中定制Tree的tooltip
查看>>
log4j.properties的作用
查看>>
优步中国:2月底前进军广东、湖南、湖北18个城市
查看>>
滴滴快车历史奖励政策:含工作日和周末的高峰奖励、翻倍奖励【历史政策】...
查看>>
ubuntu 16.04 安装chrome的方法
查看>>
轻快的VIM(一):移动
查看>>
【bzoj4571 scoi2016】美味
查看>>
文件操作类2
查看>>
'System.Web.Http.GlobalConfiguration' does not contain a definition for 'Configure'
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
转载------------Python多线程学习
查看>>
判断是否是微信浏览器
查看>>
Beta 冲刺(5/7)
查看>>
博客作业03--栈和队列
查看>>
phpcurl类
查看>>
Hadoop伪分布式搭建
查看>>
第二章:07字符
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
apache开源项目-- Turbine
查看>>