[英]Calculating sum using Angular
我是AngularJs的初学者,我很难显示两个数字的总和。 第一个脚本完美地工作:
<div>
<p><input type="text" ng-model="price1" /> <strong>{{price1}}</strong></p>
<p><input type="text" ng-model="price2" /> <strong>{{price2}}</strong></p>
<p><strong>{{total = (price1 * 1 + price2 * 1) }}</strong></p>
</div>
但是当我尝试使用控制器测试时,如下所示:
<div ng-controller="myCtrl">
<p><input type="text" ng-model="price1" /> <strong>{{price1}}</strong></p>
<p><input type="text" ng-model="price2" /> <strong>{{price2}}</strong></p>
<p><strong>{{total}}</strong></p>
</div>
<script>
var app = angular.module('firstApp', []);
app.controller('myCtrl', ['$scope', function($scope) {
$scope.total = ($scope.price1 + $scope.price2);
}]);
</script>
我没有结果,只有一个NaN值。 我不知道发生了什么!
您的代码中存在几个问题:
$scope.price1
和$scope.price2
。 使用undefined
值的算术运算会产生NaN
作为结果。 $scope.total
。 其结果未在$scope.price1
或$scope.price2
更改时更新 type="number"
而不是type="text"
然后将解析$scope.price1
和$scope.price2
的值并将其汇总为数字。 在您的代码中,它们被串联为字符串。 var app = angular.module('myApp', []); app.controller("myCtrl", function ($scope) { $scope.price1 = 1; $scope.price2 = 2; $scope.getTotal = function() { return $scope.price1 + $scope.price2; }; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp"> <div ng-controller="myCtrl"> <p><input type="number" ng-model="price1" /> <strong>{{price1}}</strong></p> <p><input type="number" ng-model="price2" /> <strong>{{price2}}</strong></p> <p><strong>{{getTotal()}}</strong></p> </div> </div>
你需要设置默认值吗? 它是说NaN,因为你没有在输入框中输入任何东西?
尝试在总计算上方初始化控制器中的变量。
$scope.price1 = 0;
$scope.price2 = 0;
调用sum时,值是未定义的,只需给它们一个初始值
$scope.price1 = 1;
$scope.price2 = 2;
$scope.total = ($scope.price1 + $scope.price2);
你在做什么等于:
$scope.total = ($scope.price1 + $scope.price2);
$scope.total = (undefined + undefined); //equals to NaN
我这样做但是我必须在我的控制器中给出price1和price2的值,就像那样:
<script>
var app = angular.module('firstApp', []);
app.controller('myCtrl', ['$scope', function($scope) {
$scope.price1 = 1;
$scope.price2 = 2;
$scope.total = ($scope.price1 + $scope.price2);
}]);
</script>
但我有两个输入。 我想像计算器一样使用它们,将值放入其中并查看结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.