0

嗨,我有这样的输入

<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 字段中。感谢您的任何帮助和建议。

4

2 回答 2

3

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

更好的做法是实现一个与ng-changeupdateTotal()结合的函数。我还建议将您的类型更改为,这样您就不允许用户对文本求和。inputnumber

<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;
}
于 2016-11-10T09:45:13.243 回答
0

应该是这样以防止连接

$scope.updateTotal = function() { 
  var Public = Number($scope.tbl.Public || 0); 
  var Private = Number($scope.tbl.Private || 0); 
  $scope.tbl.Total = Public + Private; 
} 
于 2016-11-10T19:26:39.983 回答