繁体   English   中英

使用Angular计算总和

[英]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值。 我不知道发生了什么!

您的代码中存在几个问题:

  1. 初始化控制器后,未定义变量$scope.price1$scope.price2 使用undefined值的算术运算会产生NaN作为结果。
  2. 您只需计算一次$scope.total 其结果未在$scope.price1$scope.price2更改时更新
  3. 在输入中,您应该使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM