就是一个播放视频的标志 点击后消失 如果list里面每个对象上本身有flag属性 点击后可以消失 但是对象本身是没有flag这个属性的 点击一次后我给对象加上了这个属性并且为flase 可是试了一下下面这样不行 并不能消失 这是怎么回事?
下面是点击一次后添加flag的截图 可以看到添加成功了 但是没有消失 这是为什么?
<div class="video" v-for="(item,index) in list">
<video loop="true" @click="play(index)" ref="videos" muted="false" :src="item.src"></video>
<img v-if="item.flag==null||item.flag?true:false" @click="play(index)" src="static/Img/play.png">
</div>
list:[ { src: 'https://outin-c90b11e33fe411e9bc7100163e00b174.oss-cn-shanghai.aliyuncs.com/sv/3850be7-16f85430281/3850be7-16f85430281.mp4' }, { src: 'https://outin-c90b11e33fe411e9bc7100163e00b174.oss-cn-shanghai.aliyuncs.com/sv/3850be7-16f85430281/3850be7-16f85430281.mp4' }, { src: 'https://outin-c90b11e33fe411e9bc7100163e00b174.oss-cn-shanghai.aliyuncs.com/sv/3850be7-16f85430281/3850be7-16f85430281.mp4' } ],
play(index){
this.list[index].flag = false
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
因为在data里没有声明flag,所以这个属性不是响应式的,你可以使用set使它变成响应式的属性。
this.$set(this.list[index], 'flag', false) 另外
v-if="item.flag==null||item.flag?true:false" 这段代码太繁杂了,其实可以简化,你可以用flag表示是否隐藏,flag为true则隐藏,不存在或者为false则显示。
this.$set(this.list[index], 'flag', true)