举个简单的例子:输入货币数据的文本框.
我试过vue指令.由于其他控件而刷新UI时,不会调用指令的更新方法.所以文本框中的值会恢复为不带任何格式的值.
我还try 了v-on:change事件处理程序.但我不知道如何在事件处理程序中调用全局函数.在每个Vue对象中创建货币转换方法不是一个好做法.
那么,现在Vue 2.0中的标准格式是什么?
当做
举个简单的例子:输入货币数据的文本框.
我试过vue指令.由于其他控件而刷新UI时,不会调用指令的更新方法.所以文本框中的值会恢复为不带任何格式的值.
我还try 了v-on:change事件处理程序.但我不知道如何在事件处理程序中调用全局函数.在每个Vue对象中创建货币转换方法不是一个好做法.
那么,现在Vue 2.0中的标准格式是什么?
当做
请判断这个正在工作的JSFIDLE示例:https://jsfiddle.net/mani04/bgzhw68m/
在本例中,格式化的货币输入本身就是一个组件,与Vue中的任何其他表单元素一样使用v-model
.js.可以按如下方式初始化此组件:
<my-currency-input v-model="price"></my-currency-input>
my-currency-input
是一个独立的组件,当输入框为inactive时,它会格式化货币值.当用户将光标放入其中时,格式将被删除,以便用户可以轻松地修改值.
以下是它的工作原理:
my-currency-input
分量的计算值为-displayValue
,定义了get
和set
种方法.在get
方法中,如果输入框未激活,它将返回格式化的货币值.
当用户在输入框中输入时,displayValue
computed property的set
方法使用$emit
发出值,从而将此更改通知父组件.
在自定义组件上使用v-model
的参考:https://vuejs.org/v2/guide/components.html#Form-Input-Components-using-Custom-Events