我正在为工作建立一个退休收入计算器,并且第一次开始使用Vue来集成双向数据绑定。我已经开发了计算器的大部分功能,但由于不熟悉Vue,我在计算器中实现了几个业务规则时遇到了一些麻烦。我已完成的代码可以在https://jsfiddle.net/9f542pqs/查看。以下是我需要应用的业务规则:
我尝试将v-on:change
侦听器附加到用于存储"贡献的输入,直到"年龄,然后检查业务规则,设置控制增加/减少按钮的禁用状态的布尔值,但事件永远不会触发我。当"的值为"时,如何实现此功能以禁用增加/减少按钮?年龄更新?
答案 0 :(得分:3)
change
事件仅在直接编辑输入值时触发。当您通过下拉菜单或+/-按钮更改它时,它不会触发。
好消息是,你真的不想从DOM获得change
事件。您已将值绑定到变量,并且您要注意的是该变量的值何时更改。这就是watch的用途。你会做类似的事情:
...(in your Vue spec)...
watch: {
age: function (newValue, oldValue) {
validate(newValue);
}
},
...
(另请注意:由于您使用的是v-model="age"
,因此您不需要value="{{age}}"
)
我注意到你将Vue分别应用于各种DOM元素。您可能希望这些不同的项目彼此了解。您可能应该为整个应用程序调用一次Vue,并且可能让每个子单元都由一个组件表示。
认为Vue不是添加双向绑定的一种方式,而是将DOM与编程隔离开来的一种方式。您只将应用程序状态作为数据处理,Vue确保DOM反映该状态。