我有此代码使用angular js:
<!DOCTYPE html > <html> <head> <title>Untitled Page</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> <script type="text/javascript"> function TodoCtrl($scope) { $scope.total = function () { return $scope.x + $scope.y; }; } </script> </head> <body> <div ng-app> <h2>Calculate</h2> <div ng-controller="TodoCtrl"> <form> <li>Number 1: <input type="text" ng-model="x" /> </li> <li>Number 2: <input type="text" ng-model="y" /> </li> <li>Total <input type="text" value="{{total()}}"/></li> </form> </div> </div> </body> </html>
我可以进行乘法,除法和减法,但是对于加法,代码仅将x和y值连接在一起(即,如果x = 3且y = 4,则总数为34,而不是7)。
我究竟做错了什么?
如果确实如此,那么正在发生的事情是将为x和y传递的值视为字符串并连接在一起。您应该做的是使用parseInt
parseInt
return parseInt($scope.x) + parseInt($scope.y);
或者如果您希望简洁
return $scope.x*1 + $scope.y*1;