2015-10-28 41 views
1

當用戶輸入號碼然後點擊「+」,它會追加計數,而不是執行計數器的加法。Angularjs輸入文本追加號碼而不是添加它

但是在輸入框中沒有鍵號的情況下執行「 - 」或「+」動作時它工作正常。

<div ng-app="myApp" ng-controller ="myCtrl"> 
    <span ng-click="count = count + 1">+</span> 
    <input type="text" ng-model="count" valid-number> 
    <span ng-click="count = count - 1" ng-show="count > 0">-</span> 
</div> 

小提琴:http://jsfiddle.net/shenglim/Lyugypqk/4/

任何人都可以幫助您解決這個?謝謝 !

回答

1

簡單的例子將工作,如果使用ng-click =「test()」並執行基本加法,如果您需要從現有的json中檢索哪個返回字符串,請嘗試在JSON對象上使用parseInt()等。

+0

是的!謝謝 !! – Took

1

嘗試<input type="number">

type="text"的數據類型,使其成爲一個字符串,並"1" + 1 = "11"

的jsfiddle〜http://jsfiddle.net/Lyugypqk/2/

+0

嗨菲爾, 我把輸入類型=「文本」的原因是爲了防止用戶通過指令控制輸入負值。如果type =「number」,用戶仍然可以通過點擊向下箭頭輸入負數。 – Took

+0

@然後添加'min =「0」'。 – Phil

+0

對不起,我沒有在提問中明確表示。我想防止用戶的負數和小數。 – Took

1

另外,您可以添加兩種方法來增加和減少的值到控制器,並使用它們,

$scope.increment = function(){ 
     $scope.count++; 
    }; 

    $scope.decrement = function(){ 
     $scope.count--; 
    }; 

    <span ng-click="increment()">+</span> 
    <input type="text" ng-model="count" valid-number> 
    <span ng-click="decrement()" ng-show="count > 0">-</span>