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

第三节 使用v-for渲染商品列表

1.使用vue-resource插件引入json数据

注:在谷歌中调试打断点--

 ,console还可以输出vm,res等属性列表,或者productList等一些值。如打出vm可以查看vue实例包含的属性和方法等)

  1 html:
  2 <ul class="cart-item-list">
  3     <li v-for="(item,index) in productList">
  4         <!--v-for="item in productList"这是vue1.0的用法-->
  5         <div class="cart-tab-1">
  6             <!-- 单选 -->
  7             <div class="cart-item-check">
  8                 <a href="javascipt:;" class="item-check-btn">
  9                     <svg class="icon icon-ok"><use xlink:href="#icon-ok"></use></svg>
 10                 </a>
 11             </div>
 12             <!-- 商品图片 -->
 13             <div class="cart-item-pic">
 14                 <img v-bind:src="item.productImage" alt="烟">
 15                 <!--src="{{item.productImage}}"貌似不能使用-->
 16                 <!--v-bind是比较好的办法,浏览器解析字符串直接写src会报错什么的-->
 17             </div>
 18             <!-- 商品名称 -->
 19             <div class="cart-item-title">
 20                 <div class="item-name">{{item.productName+":"+index}}</div>
 21                 <!--{{item.productName+":"+index}}-->
 22             </div>
 23             <!-- 赠品 -->
 24             <div class="item-include">
 25                 <dl>
 26                     <dt>赠送:</dt>
 27                     <dd v-for="part in item.parts" v-text="part.partsName"></dd>
 28                 </dl>
 29             </div>
 30         </div>
 31         <!-- 单价 -->
 32         <div class="cart-tab-2">
 33             <div class="item-price">{{item.productPrice}}</div>
 34         </div>
 35         <div class="cart-tab-3">
 36             <div class="item-quantity">
 37                 <div class="select-self select-self-open">
 38                     <div class="quentity">
 39                         <a href="javascript:;">-</a>
 40                         <input type="text" v-model="item.productQuentity">
 41                         <!--双向数据绑定功能,实现总金额实时变化功能-->
 42                         <a href="javascript:;">+</a>
 43                     </div>
 44                 </div>
 45                 <div class="item-stock">有货</div>
 46             </div>
 47         </div>
 48         <div class="cart-tab-4">
 49             <!-- 总金额 -->
 50             <div class="item-price-total">{{item.productPrice*item.productQuentity}}</div>
 51         </div>
 52         <!-- 删除功能 -->
 53 
 54         <div class="cart-tab-5">
 55             <div class="cart-item-opration">
 56                 <a href="javascript:;" class="item-edit-btn">
 57                     <svg class="icon icon-del"><use xlink:href="#icon-del"></use></svg>
 58                 </a>
 59             </div>
 60         </div>
 61 
 62     </li>
 63 </ul>
 64 js:
 65 
 66 /**
 67  * Created by zs1414030853 on 2017/2/24.
 68  */
 69 /*完整vue实例*/
 70 var vm=new Vue({
 71     el:"#app",
 72     data:{
 73               totalMoney:0,
 74               productList:[]
 75         /*初始值*/
 76     },
 77 
 78     filters:{
 79 
 80     },
 81 
 82        mounted:function () {
 83          this.cartView();
 84 
 85     },
 86 
 87     methods:{
 88       cartView: function () {
 89              var _this =this;
 90              /* this.$http.jsonp*/
 91               this.$http.get("data/cart.json",{"id":123}).then(function (res) {
 92              _this.productList =res.body.result.productList;
 93              _this.totalMoney=res.body.result.totalMoney;
 94              /*在运行的时候打断点可以查看res等属性和包含的方法值等*/
 95           });
 96       }
 97     }
 98 
 99 });
数据cart.json:
100 { 101 "message":"", 102 "status":"1", 103 "result":{ 104 "totalMoney":0, 105 "productList":[ 106 { 107 "productId":"10001", 108 "productName":"黄鹤楼香烟", 109 "productPrice":19, 110 "productQuentity":3, 111 "productImage":"img/goods-1.jpg", 112 "parts":[ 113 { 114 "partsId":"a001", 115 "partsName":"打火机" 116 }, 117 { 118 "partsId":"a002", 119 "partsName":"XXX" 120 } 121 ] 122 }, 123 { 124 "productId":"10002", 125 "productName":"加多宝", 126 "productPrice":8, 127 "productQuentity":2, 128 "productImage":"img/goods-2.jpg", 129 "parts":[ 130 { 131 "partsId":"a001", 132 "partsName":"吸管" 133 } 134 ] 135 }, 136 { 137 "productId":"10003", 138 "productName":"耳机", 139 "productPrice":39, 140 "productQuentity":1, 141 "productImage":"img/ear.jpeg", 142 "parts":[] 143 } 144 ] 145 } 146 }
原文地址:https://www.cnblogs.com/zhus/p/6443086.html