javascript - 如何根据Vue中的条件正确禁用按钮
问题描述
我正在尝试比较初始对象和更新的对象特定值,因此如果它们是相同的按钮应该被禁用。但是,即使更改按钮被禁用,它似乎也是如此:
setDisabled(){
return this.selectedItem.color === this.selectedItemInitial.color &&
this.selectedItem.price === this.selectedItemInitial.price
},
出了什么问题,为什么它没有改变布尔值?
解决方案
您定义的函数setDisabled
在组件渲染时执行一次,但在组件中的数据更改时不会执行。
您应该移动setDisabled
(并buttonDisabled
为清楚起见将其重命名)到组件的计算属性。这样,它将在组件中更新data
或更新时props
更新:
computed: {
buttonDisabled: function(){
return this.selectedItem.color === this.selectedItemInitial.color && this.selectedItem.price === this.selectedItemInitial.price
}
}
并在 html 中像这样使用它:
<!-- No parenthesis when using a computed property -->
<button :disabled="buttonDisabled"> ACTION </button>
推荐阅读
- google-cloud-datastore - 在 Google Datastore 中,是否可以获取特定项目的光标?
- github-api - 获取 Swift 语言的热门 GitHub 存储库列表
- node.js - DocuSign 可选参数节点 js sdk
- python-3.x - 输入数字以外的字符时如何使我的程序不崩溃
- shell - TeraTerm Macroscript:倒数计时器
- api - LinkedIn 广告分析 API 不返回某些指标,即“发送”和“病毒评论喜欢”
- angularjs - 着色 XML 数据 - AngularJS
- python-3.x - 为什么调用 root.destroy 仍然不能继续我的循环?
- javascript - 如何从 innerHTML 获取下拉列表数组值并保存到数据库
- java - Tomcat 上的 DBCP 连接池设置