第四节 v-on实现金额动态计算

用¥金额 进行格式处理,可以使用原生js进行转换,但是在vuei,使用filter过滤器更加方便

注:

1.es6语法=>和import等

好处在于res参数后的function函数内的this作用域,不弄在外部声明变量了。

methods:{

cartView:function(){

let _this=this;

this.$http.get("data/cartData.json",{"id":123}).then( res=>{

this.productList =res.body.result.productList;
this.totalMoney=res.body.result.totalMoney;

}); }}

2.全局过滤器:可以在任何页面使用

html:{{item.productPrice*item.productQuentity | money('元')}}
js:
       Vue.filter("money",function (value,type) {
return"¥"+value.toFixed(2)+type;
})

代码:

<ul class="cart-item-list">
<li v-for="(item,index) in productList">
<!--v-for="item in productList"这是vue1.0的用法-->
<div class="cart-tab-1">
<!-- 单选 -->
<div class="cart-item-check">
<a href="javascipt:;" class="item-check-btn">
<svg class="icon icon-ok"><use xlink:href="#icon-ok"></use></svg>
</a>
</div>
<!-- 商品图片 -->
<div class="cart-item-pic">
<img v-bind:src="item.productImage" alt="烟">
<!--src="{{item.productImage}}"貌似不能使用-->
<!--v-bind是比较好的办法,浏览器解析字符串直接写src会报错什么的-->
</div>
<!-- 商品名称 -->
<div class="cart-item-title">
<div class="item-name">{{item.productName+":"+index}}</div>
<!--{{item.productName+":"+index}}-->
</div>
<!-- 赠品 -->
<div class="item-include">
<dl>
<dt>赠送:</dt>
<dd v-for="part in item.parts" v-text="part.partsName"></dd>
</dl>
</div>
</div>
<!-- 单价 -->
<div class="cart-tab-2">
<div class="item-price">{{item.productPrice | formatMoney}}</div>
</div>
<div class="cart-tab-3">
<div class="item-quantity">
<div class="select-self select-self-open">
<div class="quentity">
<a href="javascript:;">-</a>
<input type="text" v-model="item.productQuentity">
<!--双向数据绑定功能,实现总金额实时变化功能-->
<a href="javascript:;">+</a>
</div>
</div>
<div class="item-stock">有货</div>
</div>
</div>
<div class="cart-tab-4">
<!-- 总金额 -->
<div class="item-price-total">{{item.productPrice*item.productQuentity | formatMoney}}</div>
</div>
<!-- 删除功能 --> <div class="cart-tab-5">
<div class="cart-item-opration">
<a href="javascript:;" class="item-edit-btn">
<svg class="icon icon-del"><use xlink:href="#icon-del"></use></svg>
</a>
</div>
</div> </li>
</ul>js:
/**
* Created by zs1414030853 on 2017/2/24.
*/
/*完整vue实例*/
var vm=new Vue({
el:"#app",
data:{
totalMoney:0,
productList:[]
/*初始值*/
}, filters:{
formatMoney:function (value) {
return"¥"+value.toFixed(2);
}
/*局部过滤器只能在实例的范围内使用*/
}, mounted:function () {
this.$nextTick(function () { });/*此时this和vm是等同的,这是mounted和ready的vue1和2的区别*/
this.cartView(); }, methods:{
cartView: function () {
var _this =this;
/* this.$http.jsonp*/
this.$http.get("data/cart.json",{"id":123}).then(function (res) {
_this.productList =res.body.result.productList;
_this.totalMoney=res.body.result.totalMoney;
/*在运行的时候打断点可以查看res等属性和包含的方法值等*/
});
}
} });
												

VUE2.0实现购物车和地址选配功能学习第四节的更多相关文章

  1. VUE2.0实现购物车和地址选配功能学习第七节

    第七节 卡片选中,设置默认 1.卡片选中html:<li v-for="(item,index) in filterAddress" v-bind:class="{ ...

  2. VUE2.0实现购物车和地址选配功能学习第六节

    第六节 地址列表过滤和展开所有的地址 html:<li v-for="(item,index) in filterAddress">js: new Vue({ el:' ...

  3. VUE2.0实现购物车和地址选配功能学习第五节

    第五节 单件商品金额计算和单选全选功能 1.vue精髓在于操作data模型来改变dom,渲染页面,而不是直接去改变dom 2.加减改变总金额功能: html:<div class="c ...

  4. VUE2.0实现购物车和地址选配功能学习第三节

    第三节 使用v-for渲染商品列表 1.使用vue-resource插件引入json数据 (注:在谷歌中调试打断点-- ,console还可以输出vm,res等属性列表,或者productList等一 ...

  5. VUE2.0实现购物车和地址选配功能学习第二节

    第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...

  6. VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)

    第一节  vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便 ...

  7. 关于慕课网《使用vue2.0实现购物车和地址选配功能》的总结

    视频学习网址:http://www.imooc.com/learn/796 源码打包:https://codeload.github.com/fachaoshao/Vue-ShoppingCart/z ...

  8. vue2.0实现购物车功能

    购物车功能是一件比较繁琐的事情,逻辑功能太多,今天就用vue2.0实现一个简单的购物车功能,数据都本地自己写的假数据 功能列表: 1.全选和单选结算 2.减少和增加数量 3.商品的删除 界面搭建以及布 ...

  9. vue购物车和地址选配(三)

    参考资料:vue.js官网 项目演示: 项目源代码: 核心代码及踩坑 删除: new Vue({ el:'#app', data:{ productlist:[], totalMoney:0, che ...

随机推荐

  1. 使用python爬虫抓站的一些技巧总结:进阶篇

    Reference:http://python.jobbole.com/82000/ 一.gzip/deflate支持 现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页 ...

  2. python实现二叉树

    初学python,需要实现一个决策树,首先实践一下利用python实现一个二叉树数据结构.建树的时候做了处理,保证建立的二叉树是平衡二叉树. # -*- coding: utf-8 -*- from ...

  3. iOS 之 获取View所在控制器

    1. UIResponder UIViewController *uvc; UIResponder* nextResponder = [self.superview.superview.supervi ...

  4. Angular - - angular.equals

    angular.equals 对比两个对象/值是否相等.支持值类型.正则表达式.数组和对象. 如果下列至少有一个是正确的,则将两个对象/值视为相等. 两个对象/值能通过===比较. 两个对象/值是同一 ...

  5. js原生设计模式——2面向对象编程之继承—new+call(this)组合式继承

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  6. Typescript中的Class

    let btn = document.createElement('button'); btn.textContent = 'Say Hello'; document.body.appendChild ...

  7. android 快捷技巧

    快捷方式 <!--[if !supportLists]-->0. Ctrl + 1 (快速修复) <!--[if !supportLists]-->1. Ctrl + D (删 ...

  8. Oracle Job 语法和时间间隔的设定(转)

    http://blog.itpub.net/27157/viewspace-425567/ 初始化相关参数job_queue_processesalter system set job_queue_p ...

  9. SVG在网页中的四种使用方式

    1,直接打开simple.svg <svg xmlns="http://www.w3.org/2000/svg" width="200" height=& ...

  10. loadrunner controller:设置多个load generator

      下面讲一下如何使用多台电脑进行负载测试. 1)         打开load generator,如图所示默认已添加了我们本地的Generator: 2)         点击"Add. ...