vue项目中遇到的问题,抽象之后如http://jsfiddle.net/eywraw8t/194748/描述:请求之后获得的一个数据列表,给列表中的每一项添加一个flag,来控制他的样式,并且点击每条数据时切换这个flag的true/false状态,从而期望达到控制样式的目的。但是实际效果却和期望不符。请大家帮我看看问题出在哪?怎么解决?
解决方案 »
- 关于The requested resource () is not available.
- 关于正则表达式 "(?:"
- 如何避免提交表单时触发onbeforeunload事件?
- 利用js或者jquery 实现页面拖动,并将cookie保存到数据库实例
- 问个JS问题,特别奇怪
- 当checkbox的内容为一项时,alert(checkbox.length)竟是undefined???
- <body oncontextmenu="return false">
- 如何在一个页面中激活另一个页面的函数
- 请问:网站中如何实现选择文件夹的对话框,类似选择文件的对话框的那样,非常感谢!
- if (mm.length==1) mm='0'+String(mm);本来mm=2,长度是1,但就是不在前边加零?
- location.href 发送请求到后台后,怎么获取后台传递过来的值
- 怎么往JS里传假数据
按照你说的试了一下,依然没效果
数据其实已经变更了,但是视图没有跟着变
如果这个flag属性是直接定义在data中的就没问题,经过created中遍历操作后续添加这个属性之后就不可以了,实在想不出原因。
按照你说的试了一下,依然没效果
数据其实已经变更了,但是视图没有跟着变
你把selected直接渲染在页面上,看看值有没有变化,
如果有变化那就是class判断错误
按照你说的试了一下,依然没效果
数据其实已经变更了,但是视图没有跟着变
你把selected直接渲染在页面上,看看值有没有变化,
如果有变化那就是class判断错误
selected值没有变化
http://jsfiddle.net/eywraw8t/194886/
按照你说的试了一下,依然没效果
数据其实已经变更了,但是视图没有跟着变
你把selected直接渲染在页面上,看看值有没有变化,
如果有变化那就是class判断错误
selected值没有变化
http://jsfiddle.net/eywraw8t/194886/
试试看$set设置值,
list: [{
a: 11,
b: 12,
selected:false
},{
a: 21,
b: 22,
selected:false
},{
a: 31,
b: 32,
selected:false
}]
你可以把数据打在页面上看看 。
vue.set我测试了 但是好像没有什么效果。
这是我能想到的办法 http://jsfiddle.net/5cjmo0ts/3/
new Vue({
el: "#app",
data: {
list: [{
a: 11,
b: 12
},{
a: 21,
b: 22
},{
a: 31,
b: 32
}]
},
created(){
for(let i=0; i<this.list.length; i++){
this.$set(this.list[i], "selected", false);
}
},
methods: {
select(index){
this.list[index].selected = !this.list[index].selected;
}
}
})
let arr = JSON.parse(JSON.stringify(this.list))
arr[index].selected = !arr[index].selected
this.list=arr
}
vue 重新绘制的条件,你是循环list生成的页面,必须修改list,界面才会重绘,
只修改list里面元素的属性是不会重绘的