2016-05-31 35 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。 –