Angularjs ng 值总和字段

Angularjs ng-value sum fields

嗨,我有这样的输入

<input type="text" ng-model="tbl.Public">
<input type="text" ng-model="tbl.Private">
<input type="text" ng-value="tbl.Public--tbl.Private" ng-model="tbl.Total">

上面的表格可以正常工作,它将 Public 和 Private 值相加并将其放入 tbl.Total 字段。我的问题是编辑表单,其中 tbl.Total、tbl.Public、tbl.Private 的值是从数据库分配的。

js

$scope.tbl.Public=10;
$scope.tbl.Private=25;
$scope.tbl.Total=35;

现在,当我在表单中更改 tbl.Public 或 tbl.Private 的值时,从 js 分配一个值后,它不会影响 tbl.Total 它应该将两个值相加并将其放入tbl.Total 字段。 感谢您的任何帮助和建议。

ng-value 通常用于单选按钮和选项元素,它不适合您的用例。

更好的做法是实施 updateTotal() 函数并结合 ng-change。我还建议将您的 input 类型更改为 number,这样您就不允许用户对文本求和。

<input type="number" ng-model="tbl.Public" ng-change="updateTotal();">
<input type="number" ng-model="tbl.Private" ng-change="updateTotal();">
<input type="number" ng-model="tbl.Total">

在你的控制器中:

$scope.updateTotal = function() {
  $scope.tbl.Total = $scope.tbl.Public + $scope.tbl.Private;
}

应该是这样防止串连

$scope.updateTotal = function() { 
  var Public = Number($scope.tbl.Public || 0); 
  var Private = Number($scope.tbl.Private || 0); 
  $scope.tbl.Total = Public + Private; 
}