如何在AngularJS中切片/修剪$ scope变量

时间:2016-05-31 17:56:19

标签: javascript angularjs

我是AngularJS的新手,当ng-click =" del()"我试图修剪/切片/删除变量($ scope.checkTotal)中的最后一个字符。点击。

也许我的做法是错的,但到目前为止我已经尝试过了:

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

});

3 个答案:

答案 0 :(得分:3)

您需要从函数调用中分配返回值。例如

$scope.checkTotal.substring(0, length - 1);

应该是

$scope.checkTotal = $scope.checkTotal.substring(0, $scope.checkTotal.length - 1);

此外,您应该考虑有人点击文本框中没有任何内容删除的情况。获得$scope.checkTotal.substring(0, -1);

会很尴尬

答案 1 :(得分:1)

您的方法是正确的,但方法切片会等待变量的长度(字符串或数组)。也许你可以试试:

$scope.checkTotal = $scope.checkTotal.slice(0, $scope.checkTotal.length-1);

答案 2 :(得分:1)

您需要将结果重新分配给变量。切片也从头到尾切片。试试这个。

$scope.checkTotal = $scope.checkTotal.slice(0, -1);