angular js 終極購物車(轉)

来源:http://www.cnblogs.com/historylyt/archive/2017/11/07/7799229.html
-Advertisement-
Play Games

轉自CSDN: 購物車 我的購物車 清空購物車批量刪除 name price nu... ...


轉自CSDN:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>購物車</title>
    <script src="angularjs/angular.js"></script>
    <style>
        .box{
            width: 100%;
            border-bottom: 1px solid silver;
        }
        .box1{
            width: 100%;
            margin-top: 5px;
        }
        .box1 button{
            width: 100px;
            height: 40px;
            background: crimson;
            color: white;
            text-align: center;
            line-height: 40px;
            float: right;
            border: 0;
            border-radius: 13px;
        }
        table{
            width: 100%;
        }
        tr td button{
            background: blue;
            color: white;
            border: 0;
        }

    </style>
    <script>
        var my=angular.module("my",[]);
        my.controller("mys",function ($scope) {
            /*聲明數據對象,初始化商品信息,數據自擬且不低於四條*/
$scope.arr=[
                {name:"qq",price:12.9,number:2,state:false},
                {name:"wx",price:23.9,number:1,state:false},
                {name:"aa",price:99.9,number:1,state:false},
                {name:"bb",price:10.9,number:5,state:false}
            ];
            /*刪除條目*/
$scope.del=function (index) {
                if(confirm("確定移除此項嘛?")){
                    $scope.arr.splice(index,1);
                }
            }
            /*點擊”+”按鈕輸入框中的數量加1,同時可以計算出商品小計,和購物 車總價*/
$scope.jia=function (index) {
                $scope.arr[index].number++;
            }
            /*當點擊”-”按鈕時輸入框中的數量減1,商品小計和總價*/
$scope.jian=function (index) {
                if($scope.arr[index].number>1){
                    $scope.arr[index].number--;
                }
                else if($scope.arr[index].number==1){
                    if(confirm("用戶是否刪除該商品")){
                        $scope.arr.splice(index,1);
                    }
                }
            }
            /*計算總價格*/
$scope.allSum=function () {
                var allPrice=0;
                for(var i=0;i<$scope.arr.length;i++){
                    allPrice+=$scope.<span style="color:#660e7a"><strong>arr</strong></span>[<span style="color:#458383">i</span>].<span style="color:#660e7a"><strong>price</strong></span>*$scope.arr[i].number;
                }
                return allPrice;
            };
            /*清空購物車*/
$scope.alldel=function () {
                if($scope.arr.length==0){
                    alert("您的購物車已空");
                }else{
                    $scope.arr=[];
                }
            }
            /*用戶點擊第一個checkbox代表全選,全選商品後點擊刪除選中商品,選中商品被刪除,   若購物車商品被全部刪除後*/
$scope.allCheck=false;
            $scope.allx= function () {
                for(var i=0;i<$scope.arr.length;i++){
                    if($scope.allCheck==true){
                        $scope.arr[i].state=true;
                    }else {
                        $scope.arr[i].state=false;
                    }
                }
            };
            /*每個覆選框*/
$scope.itemCheck = function () {
                var flag = 0;
                for(var i = 0; i<$scope.arr.length; i++){
                    if($scope.arr[i].state == true){
                        flag ++;
                    }
                }
                if(flag == $scope.arr.length){
                    $scope.allCheck = true;
                }else{
                    $scope.allCheck = false;
                }
            };
            /*批量刪除*/
$scope.pi=function () {
                for(var i=0;i<$scope.arr.length;i++){
                    if($scope.arr[i].state==true){
                        $scope.arr.splice(i,1);
                        i--;
                        $scope.allCheck = false;
                    }
                }
            }
        });
    </script>
</head>
<body ng-app="my" ng-controller="mys">
    <div class="box">
        <h2>我的購物車</h2>
    </div>
    <div class="box1">
        <button ng-click="alldel()" style="margin-right: 10px">清空購物車</button><button ng-click="pi()" style="margin-left: 5px">批量刪除</button>
    </div>
    <div class="box2">
        <table border="1">
            <tr>
                <th><input type="checkbox" ng-model="allCheck" ng-click="allx()"/></th>
                <th>name</th>
                <th>price</th>
                <th>number</th>
                <th>totalPrice</th>
                <th>option</th>
            </tr>
            <!--用ng-repaet指令將對象遍歷並渲染到頁面中-->
<tr ng-repeat="item in arr">
                <td><input type="checkbox" ng-model="item.state" ng-click="itemCheck()"/></td>
                <td>{{item.name}}</td>
                <td>{{item.price | currency:"¥:"}}</td>
                <td><button ng-click="jian($index)">-</button>
                    <input type="text" value="{{item.number}}" style="width: 30px;padding-left: 20px"/>
                    <button ng-click="jia($index)">+</button>
                </td>
                <td>{{item.price*item.number | currency:"¥:"}}</td>
                <td><button ng-click="del($index)">刪除</button></td>
            </tr>
            <tr>
                <td colspan="6">總金額<span ng-bind="allSum()|currency:'¥:'"></span></td>
            </tr>
        </table>
    </div>
</body>
</html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引言 對象是JavaScript的基本數據類型。 對象是一種複合值:將很多值(原始值或者其他對象)聚合在一起,通過名字訪問這些值。 對象可以看做屬性的無序集合,每個屬性都是一個名/值對。屬性名是字元串。 對象還可以看做字元串到值的映射。 除了可以保持自有的屬性,對象還可以從一個稱為原型的對象繼承屬性 ...
  • 在APP開發過程中,免不了要進行ios的數據處理,在ios傳遞數據的過程中,會出現JSON數據獲取不到的情況,這時候就輪到encodeURI 和 decodeURI出馬了。 ...
  • 最近看了一些有關於js實現圖片粘貼上傳的demo,實現如下: (這裡只能檢測到截圖粘貼和圖片右鍵複製之後粘貼) demo1: demo2: 註意:因為只支持右鍵複製圖片,所以並不能一下複製兩張圖片,所有圖片複製並粘貼上傳待研究. html: 介面返回數據格式: 參考部分:http://www.jb5 ...
  • 驗證數字的正則表達式集 驗證數字:^[0-9]*$ 驗證n位的數字:^\d{n}$ 驗證至少n位數字:^\d{n,}$ 驗證m-n位的數字:^\d{m,n}$ 驗證零和非零開頭的數字:^(0|[1-9][0-9]*)$ 驗證有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$ 驗證有1-3位 ...
  • /* * 單向鏈表 * Node 類用來表示節點 * LinkedList 類提供了插入節點、刪除節點、顯示列表元素的方法,以及其他一些輔助方法。 */ function Node(element) { this.element = element; this.next = null; }; fun... ...
  • elementUI官方案例:http://element.eleme.io/#/zh-CN/component/date-picker (1)效果圖: (2)安裝和引入 (3)到自己的組件demo.vue里使用: ...
  • 前言 在之前的html相關的介紹中,我們已經學習了使用table來佈局網站的首頁,但是使用這種方式來佈局的話有一些缺陷,所以筆者這裡就介紹一下如何使用DIV+CSS來對網站的首頁進行佈局! 一、DIV的相關介紹 Div 它是一個 html 標簽,一個塊級元素(單獨顯示一行)。它單獨使用沒有任何意義, ...
  • 轉自CSDN: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...