2016-05-31 32 views
0

我是新来AngularJS,我试图削减/片/从变量($ scope.checkTotal)删除最后一个字符时NG-点击=“德尔() “被点击。

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

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

}); 
+1

'$ scope.checkTotal = $ scope.checkTotal.substring(0,长度 - 1)' –

+0

任何你已经试过什么工作,只要您指定的新值变量。 –

回答

1

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

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

当我执行此操作时,它将删除整个字符串并将我留下“”? – nightowl

+0

确定你的变量类型是什么?你的变量类型的内容是什么? –

+0

正如所写,这将返回字符串的最后一个字符。除了最后一个字符以外,你想要所有的东西,所以它应该是“0,长度-1”,而不是“长度-1”。 (另外,解释是无法理解的。) –

3

你需要从函数调用指定的返回值。例如

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

应该

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

而且你应该考虑的情况下,有人点击什么也没有在文本框中删除。会很尴尬得到$scope.checkTotal.substring(0, -1);

+0

你的答案有效,但$ scope.checkTotal = $ scope.checkTotal.slice(0,$ scope.checkTotal.length-1);下面。是否有理由选择其中一个(子串vs切片)? – nightowl

+0

我能想到的主要区别是,如果end> start并且返回字符串的任何部分位于其中,那么substr将交换开始和结束位置参数。 Slice在该用例中返回一个空字符串。有关更详细的解释:https://rapd.wordpress.com/2007/07/12/javascript-substr-vs-substring/。 –

1

你需要重新分配结果回变量。切片也从切片开始到结束。尝试这个。

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

这个答案与其他人一起工作。区别在于.slice和.substring。是否有一条经验法则或推理可以选择一条呢? – nightowl

+0

有多种方法都可以做同样的事情。唯一的区别是他们有一些小怪癖,如果给出不正确的参数会导致意外的行为。这是在另一个问题回答http://stackoverflow.com/questions/2243824/what-is-the-difference-between-string-slice-and-string-substring。 –