如何使用 AngularJS 删除输入字段的最后一个字符



这个问题的标题可能是错误的,但我想不出如何命名它。 我正在尝试使用AngularJS构建一个简单的计算器。现在它正在运行,但我正在尝试添加一些其他按钮。我想要一个"删除"键和一个十进制键。删除键是我现在关注的。 如果有人点击,3,然后再次点击 3。我们有33个。(此计算器目前只能接受左操作数和右操作数,以及分隔它们的运算符(例如,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

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

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

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

例如:

$scope.removeBtn = function(){
var tmp = $scope.leftOperand;
console.warn("test",tmp)
$scope.leftOperand = tmp.substr(0,tmp.length-1);
}

此函数删除 leftOperand 的最后一个数字。 适应您对左/右的需求

$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;
}

};

未经测试..我猜当操作员来时必须稍微调整一下

最新更新