这个问题的标题可能是错的,但我想不出如何命名。 我正在尝试使用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
答案 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;
}
};
未经测试..如果操作员猜到,我必须稍微调整一下