Я новичок в AngularJS, и я пытаюсь обрезать/нарезать/удалить последний символ из переменной ($ scope.checkTotal), когда щелкнул ng-click = "del()".
Может быть, мой подход ошибочен, но до сих пор я пробовал:
$scope.checkTotal.slice($scope.checkTotal, -1);
$scope.checkTotal.substring(0, $scope.checkTotal.length - 1);
$scope.checkTotal.substring(0, length - 1);
.controller('tipController', function($scope) {
// Numpad
$scope.checkTotal = '0.00';
$scope.clicked = function (label) {
if($scope.checkTotal === '0.00') {
$scope.checkTotal = label;
} else {
$scope.checkTotal += label;
}
};
// Prevent multiple decimals
$scope.clickedDot = function() {
if (($scope.checkTotal.indexOf('.') < 0) || ($scope.checkTotal === '0.00')) {
if ($scope.checkTotal === '0.00') {
$scope.checkTotal = '0.';
} else {
$scope.checkTotal += '.';
}
}
};
$scope.del = function () {
$scope.checkTotal.substring(0, length - 1);
};
});
Ваш подход правильный, но срез метода ожидает длину вашей переменной (строка или массив). возможно, вы можете попробовать:
$scope.checkTotal = $scope.checkTotal.slice(0, $scope.checkTotal.length-1);
Вам нужно назначить возвращаемые значения из вызовов функций. Например
$scope.checkTotal.substring(0, length - 1);
должно быть
$scope.checkTotal = $scope.checkTotal.substring(0, $scope.checkTotal.length - 1);
Также вам следует, вероятно, рассмотреть случай, когда кто-то нажимает кнопку "Удалить" с помощью ничего в текстовом поле. Было бы неудобно получить $scope.checkTotal.substring(0, -1);
Вы должны переназначить результат обратно на переменную. Нарезка также срезается от начала и до конца. Попробуй это.
$scope.checkTotal = $scope.checkTotal.slice(0, -1);
$scope.checkTotal = $scope.checkTotal.substring(0, length - 1)