javascript - 使用 Vue.js 应用条件 CSS 类的问题
问题描述
我有一个显示帐户余额的跨度。您可以单击它来编辑该余额。您可以在下面看到我在hidden
更改编辑变量时将类应用于元素。
<span @click="updateEditAccount(true, false)" v-bind:class="{ hidden: account.editing == true }">Balance ${{ account.balance }}</span>
<input v-bind:class="{ hidden: account.editing == false }" type="number" step="0.01" v-model="account.balance" >
这是改变该值的方法
updateEditAccount(editValue, updateLedger) {
this.account.editing = editValue
alert(this.account.editing)
if(updateLedger) {
}
},
当我将初始值设置为 true 或 false 时,它会显示正确的值。调用该方法时,我可以看到该值已正确更改。
隐藏类只是一个display:none;
所以值确实改变了,但可见元素没有改变。
解决方案
这是常见的反应性问题。您可以使用Vue.set
updateEditAccount(editValue, updateLedger) {
this.$set(this.account, 'editing', editValue)
if(updateLedger) {
}
}
更新:
或者你可以使用深拷贝:
updateEditAccount(editValue, updateLedger) {
this.account.editing = editValue
this.account = JSON.parse(JSON.stringify(this.account))
if(updateLedger) {
}
}
ES6
updateEditAccount(editValue, updateLedger) {
this.account = {...this.account, editing: editValue}
if(updateLedger) {
}
}
推荐阅读
- javascript - 清除没有画布的 HTML 页面
- spring-boot - 403 Forbidden post request spring boot not working
- https - 使用linkedin api评论帖子返回403虽然我拥有所需的所有权限
- wordpress - preg_replace 特定文本到较小的后者 strtolower
- c - 是否有将图像点拉伸到 SDL2 中渲染器部分的功能?
- node.js - 使用 pm2 命令列出所有环境参数
- mysql - 货币交易的 SQL 模型解决方案?
- java - 如何在 for 循环中创建公共变量
- autodesk-forge - 添加绘图文档时出现未指定的错误
- angular - 如何为按钮循环创建角度模式弹出窗口