gpt4 book ai didi

javascript - Vue v 绑定(bind) :class not working immediately when changing the binded object's value

转载 作者:行者123 更新时间:2023-12-05 06:30:39 26 4
gpt4 key购买 nike

在Vue中,要给元素添加动态类,我认为开发人员使用v-bind:class
但在下面的示例中,v-bind:class 无法正常工作。

//Html
<div id="mainapp">
<span class="star" v-bind:class="{gold:obj.selected}" v-on:click="clickStar()">star</span>
</div>

//Script
var app = new Vue({
el:"#mainapp",
data:{
obj:{}
},
methods:{
clickStar:function(){
if(this.obj.selected == undefined) this.obj.selected =false;
//this.obj.selected=!this.obj.selected;
this.$set(this.obj, 'selected', !this.obj.selected);
console.log(this.obj);
}
}
})

JsFiddle Example

当点击元素,span标签时,obj.selected值被clickStar函数改变。
但是 v-bind:class 不起作用,尽管在更改 obj 时使用了 $set
Reason that Dom is not updated
我错了什么?我该如何解决这个问题?

最佳答案

您应该在初始化时定义所有数据属性。

将您的数据对象更改为。

data : {
object: {
selected:false<br/>
}
}

fiddle 已更新 js fiddle

关于javascript - Vue v 绑定(bind) :class not working immediately when changing the binded object's value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52158175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com