2015-10-28 44 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>