天天看点

AngularJS实现购物车

  用AngularJS实现购物车,具体代码如下:

<code>&lt;!DOCTYPE html&gt;</code>

<code>&lt;</code><code>html</code> <code>ng-app</code><code>=</code><code>"app"</code><code>&gt;</code>

<code>&lt;</code><code>head</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>meta</code> <code>charset</code><code>=</code><code>"utf-8"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>link</code> <code>href</code><code>=</code><code>"http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"</code> <code>rel</code><code>=</code><code>"stylesheet"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>style</code> <code>type</code><code>=</code><code>"text/css"</code><code>&gt;</code>

<code>    </code><code>body {</code>

<code>        </code><code>font-family: "Arial", "Microsoft YaHei", "黑体", "宋体", sans-serif;</code>

<code>    </code><code>}</code>

<code>    </code><code>&lt;/</code><code>style</code><code>&gt;</code>

<code>&lt;/</code><code>head</code><code>&gt;</code>

<code>&lt;</code><code>body</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"container"</code> <code>ng-controller</code><code>=</code><code>"firstController"</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>table</code> <code>class</code><code>=</code><code>"table"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>thead</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>tr</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>th</code><code>&gt;产品编号&lt;/</code><code>th</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>th</code><code>&gt;产品名称&lt;/</code><code>th</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>th</code><code>&gt;购买数量&lt;/</code><code>th</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>th</code><code>&gt;产品单价&lt;/</code><code>th</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>th</code><code>&gt;产品总价&lt;/</code><code>th</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>th</code><code>&gt;操作&lt;/</code><code>th</code><code>&gt;</code>

<code>                </code><code>&lt;/</code><code>tr</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>thead</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>tbody</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>tr</code> <code>ng-repeat</code><code>=</code><code>"item in Product"</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code><code>&gt;`item`.`id`&lt;/</code><code>td</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code><code>&gt;`item`.`name`&lt;/</code><code>td</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>button</code> <code>type</code><code>=</code><code>"button"</code> <code>class</code><code>=</code><code>"btn"</code> <code>ng-click</code><code>=</code><code>"reduce($index)"</code><code>&gt;-&lt;/</code><code>button</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"text"</code> <code>name</code><code>=</code><code>""</code> <code>value</code><code>=</code><code>""</code> <code>placeholder</code><code>=</code><code>""</code> <code>ng-model</code><code>=</code><code>"item.quantity"</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>button</code> <code>type</code><code>=</code><code>"button"</code> <code>class</code><code>=</code><code>"btn"</code> <code>ng-click</code><code>=</code><code>"add($index)"</code><code>&gt;+&lt;/</code><code>button</code><code>&gt;</code>

<code>                    </code><code>&lt;/</code><code>td</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code><code>&gt;`item`.`price`&lt;/</code><code>td</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code><code>&gt;{{item.quantity*item.price}}&lt;/</code><code>td</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>button</code> <code>type</code><code>=</code><code>"button"</code> <code>class</code><code>=</code><code>"btn btn-danger"</code> <code>ng-click</code><code>=</code><code>"remove($index)"</code><code>&gt;移除&lt;/</code><code>button</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code><code>&gt;总价格:{{totalPrice()}} 元&lt;/</code><code>td</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>td</code> <code>colspan</code><code>=</code><code>"4"</code><code>&gt;总购买数:{{totalQuantity()}}&lt;/</code><code>td</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>button</code> <code>type</code><code>=</code><code>"button"</code> <code>class</code><code>=</code><code>"btn btn-danger"</code> <code>ng-click</code><code>=</code><code>"removeall()"</code><code>&gt;清空购物车&lt;/</code><code>button</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>tbody</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>table</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"http://cdn.bootcss.com/angular.js/1.4.0-rc.2/angular.min.js"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;</code>

<code>    </code><code>angular.module('app', []).controller('firstController',</code>

<code>        </code><code>function($scope) {</code>

<code>            </code><code>$scope.Product = [{</code>

<code>                </code><code>id: 1000,</code>

<code>                </code><code>name: "iPhone 6 Plus",</code>

<code>                </code><code>quantity: 1,</code>

<code>                </code><code>price: 6888</code>

<code>            </code><code>}, {</code>

<code>                </code><code>id: 1001,</code>

<code>                </code><code>name: "iPhone 6",</code>

<code>                </code><code>price: 5288</code>

<code>                </code><code>id: 1002,</code>

<code>                </code><code>name: "iPhone 5s",</code>

<code>                </code><code>price: 4188</code>

<code>                </code><code>id: 1003,</code>

<code>                </code><code>name: "iPhone 5c",</code>

<code>                </code><code>price: 3288</code>

<code>            </code><code>}];</code>

<code>            </code><code>$scope.totalPrice = function() {</code>

<code>                </code><code>var total = 0;</code>

<code>                </code><code>angular.forEach($scope.Product, function(item) {</code>

<code>                    </code><code>total += item.quantity * item.price;</code>

<code>                </code><code>});</code>

<code>                </code><code>return total;</code>

<code>            </code><code>}</code>

<code>            </code><code>$scope.totalQuantity = function() {</code>

<code>                    </code><code>total += parseInt(item.quantity);</code>

<code>            </code><code>$scope.remove = function(index) {</code>

<code>                </code><code>$scope.Product.splice(index, 1);</code>

<code>            </code><code>$scope.removeall = function() {</code>

<code>                </code><code>var index;</code>

<code>                </code><code>for (index = $scope.Product.length - 1; index &gt;= 0; index--) {</code>

<code>                    </code><code>$scope.remove(index);</code>

<code>                </code><code>}</code>

<code>            </code><code>$scope.reduce = function(index) {</code>

<code>                </code><code>if ($scope.Product[index].quantity != 1) {</code>

<code>                    </code><code>$scope.Product[index].quantity--;</code>

<code>                </code><code>} else {</code>

<code>                    </code><code>var ans = confirm("是否移除该产品?");</code>

<code>                    </code><code>if (ans) {</code>

<code>                        </code><code>$scope.remove(index);</code>

<code>                    </code><code>} else {</code>

<code>                        </code><code>$scope.Product[index].quantity = 1;</code>

<code>                    </code><code>}</code>

<code>            </code><code>$scope.add = function(index) {</code>

<code>                </code><code>$scope.Product[index].quantity++;</code>

<code>            </code><code>$scope.$watch('Product', function(newValue, oldValue) {</code>

<code>                </code><code>angular.forEach(newValue, function(item, key) {</code>

<code>                    </code><code>if (item.quantity &lt; 1) {</code>

<code>                        </code><code>var ans = confirm("是否移除该产品?");</code>

<code>                        </code><code>if (ans) {</code>

<code>                            </code><code>$scope.remove(key);</code>

<code>                        </code><code>} else {</code>

<code>                            </code><code>item.quantity = oldValue[key].quantity;</code>

<code>                        </code><code>}</code>

<code>                        </code><code>return;</code>

<code>            </code><code>}, true);</code>

<code>        </code><code>});</code>

<code>    </code><code>&lt;/</code><code>script</code><code>&gt;</code>

<code>&lt;/</code><code>body</code><code>&gt;</code>

<code>&lt;/</code><code>html</code><code>&gt;</code>

   ng-repeat实现循环,ng-click后面接点击后触发的事件,firstController内几个函数是自己写的。

         这里实现了购物车商品的增减,总价和件数随之变化,商品可以移除,购物车可以清空。

本文转自 iampomelo 51CTO博客,原文链接:http://blog.51cto.com/iampomelo/1659190,如需转载请自行联系原作者