angularJs實現簡單計算器

<!DOCTYPE html>
<html lang="en" class="buttonDiv">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
    <title>計算器</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.7/angular.min.js"></script>
    <!--<script src="../js/angular.min.js"></script>-->
    <script>
        var app = angular.module("myCount", []);
        app.controller("theCount", function ($scope) {
                $scope.textView = "0";
                $scope.fuhao = "";
                $scope.firstNumber = "";
                $scope.secondNumber = "";
                //    $scope.flag = 0;//是否點擊等於號,0表示處於未點擊狀態,1表示以點擊後的狀態

                //0
                $scope.doEmpty = function () {
                    $scope.textView = "0";
                    $scope.fuhao = "";
                    $scope.firstNumber = "";
                    $scope.secondNumber = "";
                }

                //點擊正負數時
                $scope.valiteNumber = function () {
                    if ($scope.firstNumber == "") {//什麼都沒有時
                        $scope.firstNumber = "-";
                        return;
                    }
                    if ($scope.firstNumber != "" && $scope.fuhao == "") {
                        if ($scope.firstNumber / 1 > 0) {
                            $scope.firstNumber = "-" + $scope.firstNumber;
                        } else {
                            $scope.firstNumber = $scope.firstNumber.substring(1, $scope.firstNumber.length);
                        }
                        $scope.textView = $scope.firstNumber;
                        return;
                    }
                    if ($scope.fuhao != "") {
                        if ($scope.secondNumber == "") {
                            $scope.secondNumber = "-";
                            $scope.textView = $scope.secondNumber;
                            return;
                        }
                        if ($scope.secondNumber / 1 > 0) {
                            $scope.secondNumber = "-" + $scope.secondNumber;
                        } else {
                            $scope.secondNumber = $scope.secondNumber.substring(1, $scope.secondNumber.length);
                        }
                        $scope.textView = $scope.secondNumber;
                        return;
                    }

                }

                //點擊運算符號
                $scope.addChar = function (theChar) {
                    if ($scope.firstNumber != "" && $scope.fuhao == "") {
                        if ($scope.firstNumber == "." || $scope.firstNumber == "-") {
                            return;
                        }
                        $scope.fuhao = theChar;
                        return;
                    }
                    if ($scope.firstNumber != "" && $scope.fuhao != "" && $scope.secondNumber == "") {
                        $scope.fuhao = theChar;
                        return;
                    }
                    if ($scope.firstNumber != "" && $scope.fuhao != "" && $scope.secondNumber != "") {
                        if ($scope.secondNumber == "." || $scope.secondNumber == "-") {
                            return;
                        }
                        if ($scope.fuhao == "÷" && $scope.secondNumber == "0") {
                            return;
                        }
                        $scope.doCount();
                        $scope.fuhao = theChar;
                        return;
                    }
                    // $scope.textView = $scope.firstNumber + $scope.fuhao + $scope.secondNumber;

                }    //addChar

                //刪除
                $scope.deleteOneChar = function () {
                    if ($scope.secondNumber != "") {
                        $scope.secondNumber = $scope.secondNumber.substring(0, $scope.secondNumber.length - 1);
                        $scope.textView = $scope.secondNumber;
                        return;
                    }
                    if ($scope.fuhao != "") {
                        $scope.fuhao = "";
                        $scope.textView = $scope.firstNumber;
                        return;
                    }
                    if ($scope.firstNumber != "") {
                        $scope.firstNumber = $scope.firstNumber.substring(0, $scope.firstNumber.length - 1);
                        if ($scope.firstNumber == "") {
                            $scope.textView = "0";
                            return;
                        }
                        $scope.textView = $scope.firstNumber;
                        return;
                    }
                    $scope.textView = 0;
                }//deleteOneChar

                //添加數字
                $scope.addNumber = function (text) {
                    if ($scope.fuhao == "") {
                        if (text == "." && $scope.firstNumber.indexOf(".") > -1) {
                            return;
                        }
                        $scope.firstNumber += text;
                        $scope.textView = $scope.firstNumber;
                    } else {
                        if (text == "." && $scope.secondNumber.indexOf(".") > -1) {
                            return;
                        }
                        $scope.secondNumber += text;
                        $scope.textView = $scope.secondNumber;
                    }
                }

                //計算
                $scope.doCount = function () {
                    if ($scope.firstNumber == "" || $scope.fuhao == "" || $scope.secondNumber == "") {
                        return;
                    }
                    if ($scope.firstNumber != "") {
                        if ($scope.firstNumber == "." || $scope.firstNumber == "-") {
                            return;
                        }
                    }
                    if ($scope.secondNumber != "") {
                        if ($scope.secondNumber == "." || $scope.secondNumber == "-") {
                            return;
                        }
                    }
                    var fNumber = $scope.firstNumber / 1;
                    var sNumber = $scope.secondNumber / 1;
                    var result = 0;
                    switch ($scope.fuhao) {
                        case "×":
                            result = fNumber * sNumber;
                            break;
                        case "÷":
                            if (sNumber == 0) {
                                return;
                            }
                            result = fNumber / sNumber;
                            break;
                        case "+":
                            result = fNumber + sNumber;
                            break;
                        case "-":
                            result = fNumber - sNumber;
                            break;
                    }
                    if ($scope.fuhao == "÷" && sNumber == 1) {

                    } else {
                        var temp = result + "";
                        if (temp.indexOf('.') > -1 && temp.split('.')[1].length >= 8) {
                            result = result.toFixed(8);
                        }
                    }
                    $scope.textView = result / 1 + "";
                    $scope.fuhao = "";
                    $scope.firstNumber = result / 1 + "";
                    $scope.secondNumber = "";
                }//doCount
            }
        );
    </script>
    <style type="text/css">
        .button {
            text-align: center;
            margin-top: 6%;
            height: 50%;
            font-size: xx-large;
            border-radius: 30px;
            outline: darkorange 5px;

            -webkit-box-shadow: 3px 3px 3px 3px #FF452C;
            background-color: #c8d6ff;
        }

        .buttonLeft {
            width: 20%;
        }

        .buttonRightZero {
            width: 42.5%;
            margin-right: 2%;
        }

        .buttonRight {
            width: 20%;
            margin-right: 2%;

        }

        .maxDiv {
            width: 100%;
            height: 100%;
            margin: 5%;
        }

        .buttonBackground {
            background-color: darkslategrey;
            font-weight: bold;
            /*border-color: transparent;*/
        }

        .input {
            width: 88%;
            height: 50%;
            text-align: right;
            background-color: white;
            margin-bottom: 0%;
            margin-top: 8%;
            font-size: xx-large;
        }

        body {
            height: 100%;
            width: 100%;
            background-color: lightgray;
        }

        .buttonDiv {
            height: 100%;
            width: 100%;
            margin-bottom: 1%;
        }

        .inputDiv {
            height: 25%;
            width: 100%;
        }

        .buttonDot {
            font-weight: bold;
            font-size: 50px;
        }
    </style>
</head>
<body>
<div ng-app="myCount" ng-controller="theCount" class="maxDiv">
    <div class="inputDiv">
        <input class="input" ng-model="textView" disabled>
        </divclass>

        <div class="buttonDiv">
            <button class="button buttonRight buttonBackground" ng-model="empty" ng-click="doEmpty()">AC</button>
            <button class="button buttonRight buttonBackground" ng-model="delete" ng-click="deleteOneChar()">C</button>
            <button class="button buttonRight buttonBackground" ng-model="cheng" ng-click="addChar('×')">×</button>
            <button class="button buttonLeft buttonBackground" ng-model="chu" ng-click="addChar('÷')">÷</button>

            <button class="button buttonRight" ng-model="one" ng-click="addNumber('1')">1</button>
            <button class="button buttonRight" ng-model="two" ng-click="addNumber('2')">2</button>
            <button class="button buttonRight" ng-model="three" ng-click="addNumber('3')">3</button>
            <button class="button buttonLeft buttonBackground" ng-model="jian" ng-click="addChar('-')">-</button>

            <button class="button buttonRight" ng-model="four" ng-click="addNumber('4')">4</button>
            <button class="button buttonRight" ng-model="five" ng-click="addNumber('5')">5</button>
            <button class="button buttonRight" ng-model="six" ng-click="addNumber('6')">6</button>
            <button class="button buttonLeft buttonBackground" ng-model="jia" ng-click="addChar('+')">+</button>

            <button class="button buttonRight" ng-model="seven" ng-click="addNumber('7')">7</button>
            <button class="button buttonRight" ng-model="eight" ng-click="addNumber('8')">8</button>
            <button class="button buttonRight" ng-model="nine" ng-click="addNumber('9')">9</button>
            <button class="button buttonLeft buttonBackground" ng-model="dengyu" ng-click="doCount()">=</button>

            <button class="button buttonRightZero" ng-model="zero" ng-click="addNumber('0')">0</button>
            <button class="button buttonRight buttonDot" ng-model="dot" ng-click="addNumber('.')">.</button>
            <button class="button buttonRight buttonBackground" ng-model="zhengfu" ng-click="valiteNumber()">+/-
            </button>

        </div>
    </div>
</div>
</body>
</html>


運行效果圖如下所示:



版權所有,未經允許,不得轉載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章