如何使用AngularJS

时间:2017-06-12 17:24:58

标签: javascript angularjs

这个问题的标题可能是错的,但我想不出如何命名。 我正在尝试使用AngularJS构建一个简单的计算器。现在它的功能,但我正在尝试添加一些其他按钮。我想要一个“删除”键和一个十进制键。删除键是我现在关注的。 如果有人点击,3,然后再点击3。我们有33个。(这个计算器目前只能接受一个左右操作数,一个运算符将它们分开(ex,3 + 3,或56 * 486等)。不是多个运算符或操作数)。现在说用户输入334,但他们希望4被取消,因为他们打算点击5.如果没有按下运算符或等号,如何使用javascript删除最新的数字? 如果我不得不猜测,它会是这样的:

$scope.deleteNumb = function(d){
        if(!$scope.operator){
            // if no operator, delete most recent left operand
        }
        else{ //delete most recent right operand}

        }
    };

“C”按钮不起作用。我将其设置为“清除”,刷新页面以开始新的计算。我需要一种方法来弄清楚如何在不使用location.reload();

的情况下删除现有答案

所以这里最主要的是尝试删除最近的大多数操作数,无论是左边还是右边,取决于是否单击了一个操作符。

我的代码在这里: https://codepen.io/tevon/pen/Moewba

3 个答案:

答案 0 :(得分:0)

对于clear(C),您是否尝试清除setClear中的所有值

 $scope.setClear = function (a) {
          $scope.leftOperand = "";
        $scope.operator = "";
        $scope.rightOperand = "";
        $scope.answer = "";
        };

答案 1 :(得分:0)

删除部分号码;看看substr,因为你的输入是一个字符串:

例如:

 $scope.removeBtn = function(){

         var tmp = $scope.leftOperand;

         console.warn("test",tmp)
         $scope.leftOperand = tmp.substr(0,tmp.length-1);

       }

此函数删除leftOperand的最后一个数字。 根据您对左/右的需要进行调整

答案 2 :(得分:0)

    $scope.setClear = function (a) {
       // $scope.clear = location.reload();
      var result = $scope.leftOperand + $scope.operator + $scope.rightOperand;
      result = result.substring(0, result.length - 1);

       if ($scope.operator){
            $scope.rightOperand = result;
        }
        else {
            $scope.leftOperand = result;
        }



    };

未经测试..如果操作员猜到,我必须稍微调整一下