我正在尝试创建一个函数来汇总来自工厂的一些数字(以及来自客户端的一些实时),并将总和放在视图中.完全卡住了.
1 – 首先,我不明白如何在视图中显示在控制器函数中组装的变量.
所以,假设我有类似的东西:
$scope.total = function() { var totalNumber = 0; }
如何在视图中显示totalNumber?
我假设在得到这个之后,为了总结我的工厂数据:
var revenues = [ { amount: 1254 },{ amount: 1654 },{ amount: 33 },{ amount: 543 } ];
我将不得不这样做:
$scope.total = function() { var totalNumber = 0; for(i=0; i<revenues.length; i++){ totalNumber = totalNumber + revenues[i].amount } }
它是否正确?如果我动态更改收入数组,它会实时更新吗?
解决方法
正如所承诺的,这是一种不同的方法.观察收入收集并在每次更改时更新值的人:
<div ng-app ng-controller="SumCtrl"> Total: {{total}} <input type="text" ng-model="newAmount" /> <button ng-click="add(newAmount)">Add</button> </div>
和JavaScript:
function SumCtrl($scope) { function total() { var totalNumber = 0; for(var i=0; i<$scope.revenues.length; i++){ totalNumber = totalNumber + $scope.revenues[i].amount } return totalNumber; } $scope.revenues = [ { amount: 1254 },{ amount: 543 } ]; $scope.add = function(value) { $scope.revenues.push({ amount: parseInt(value) }); } $scope.$watchCollection("revenues",function() { $scope.total = total(); }); }