vue货币过滤器的实现方法


Posted in Javascript onApril 01, 2017

自定义事件也可以用来创建自定义的表单输入组件,使用 v-model 来进行数据双向绑定。

所以要让组件的 v-model 生效,它必须:

  • 接受一个 value 属性
  • 在有新的 value 时触发 input 事件

代码如下:

HTML:

<div id="app">
 <p>{{ message }}</p>
 
 <currency-input label="Price" v-model="price"></currency-input>
 <currency-input label="Shipping" v-model="shipping"></currency-input>
 <currency-input label="Handling" v-model="handling"></currency-input>
 <currency-input label="Discount" v-model="discount"></currency-input>
 <p>Total: ${{ total }}</p>
</div>

JavaScript:

Vue.component('currency-input', {
 template: `\
 <div>\
  <label v-if="label">{{ label }}</label>\
   $\
   <input\
   ref="input"\
    v-bind:value="value"\
    v-on:input="updateValue($event.target.value)"\
    v-on:focus="selectAll"\
    v-on:blur="formatValue"\
    >\
   </div>\
 `,
 props: {
 value: {
  type: Number,
   default: 0
  },
  label: {
  type: String,
   default: ''
  }
 },
 mounted: function () {
 this.formatValue()
 },
 methods: {
  updateValue: function (value) {
  var result = currencyValidator.parse(value, this.value)
   if (result.warning) {
   this.$refs.input.value = result.value
   }
   this.$emit('input', result.value)
  },
  formatValue: function () {
  this.$refs.input.value = currencyValidator.format(this.value)
  },
  selectAll: function (event) {
  setTimeout(function () {
   event.target.select()
   }, 0)
  }
 }
})
new Vue({
 el: '#app',
 data: {
  message: 'Hello Vue.js!',
  price: 0,
  shipping: 0,
  handling: 0,
  discount: 0
 },
 computed: {
 total: function () {
  return ((
   this.price * 100 +
    this.shipping * 100 +
    this.handling * 100 -
    this.discount * 10
   ) / 100).toFixed(2)
  }
 }
})

效果图如下:

vue货币过滤器的实现方法

每个 Vue 实例都实现了事件接口(Events interface),即:

使用 $on(eventName) 监听事件
使用 $emit(eventName) 触发事件

v-model实现双向传递。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
快速排序 php与javascript的不同之处
Feb 22 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
批量实现面向对象的实例代码
Jul 01 Javascript
原生javascript获取元素样式
Dec 31 Javascript
浅谈Javascript数组的使用
Jul 29 Javascript
JQuery validate插件Remote用法大全
May 15 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
Sep 20 Javascript
js仿网易表单及时验证功能
Mar 07 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
javascript 中的try catch应用总结
Apr 01 #Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 #Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 #Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 #Javascript
ES6新特性之函数的扩展实例详解
Apr 01 #Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 #Javascript
ES6新特性之模块Module用法详解
Apr 01 #Javascript
You might like
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
js格式化时间小结
2014/11/03 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
详解jQuery事件
2017/01/13 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
Python函数式编程指南(四):生成器详解
2015/06/24 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python tkinter label 更新方法
2018/10/11 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python求质数列表的例子
2019/11/24 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
服装设计行业个人的自我评价
2013/12/20 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript