码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-02-26 13:53:35      阅读:707      评论:0      收藏:0      [点我收藏+]

标签:creat   import   属性   include   rod   app   ant   2.0   名称   

第四节 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实现购物车和地址选配功能学习第四节

标签:creat   import   属性   include   rod   app   ant   2.0   名称   

原文地址:http://www.cnblogs.com/zhus/p/6444045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!