AngularJS:输入值的总和

我有一个简单的输入列表绑定到一个显示良好的项目列表。 当我更改输入中的值时, 总和不会更新?

示例: http : //plnkr.co/edit/B7tEAsXSFvyLRmJ5xcnJ?p = preview

HTML

 

Total:

脚本

 app.controller('MainCtrl', function($scope) { $scope.items = [1,2,5,7]; $scope.sum = function(list) { var total=0; angular.forEach(list , function(item){ total+= item; }); return total; } }); 

检查这个小提琴的实现: http : //jsfiddle.net/9tsdv/

需要注意的要点:

  • 将ng-model指令与input元素一起使用,以允许项模型和input元素之间的双向绑定
  • 由于ng-repeat创建子范围,而items数组中的元素是原始类型或值类型,因此它们在第一个摘要周期中按值复制,然后对输入字段所做的任何更改都不会反映在总和中,因为现在,修改绑定到ng-repeat创建的子范围中的变量。 (有关详细信息,请参阅有关范围inheritance的其他参考)

HTML:

  

Total:

控制器代码:

 app.controller('MainCtrl', function($scope) { $scope.items = [ { value: 1 }, { value: 2 }, { value: 5}, { value: 7 } ]; $scope.sum = function(list) { var total=0; angular.forEach(list , function(item){ total+= parseInt(item.value); }); return total; } }); 
  

Total:

你需要使用ng-model … ng-model和ng-bind之间的区别是什么