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;
}
嗨,我有这样的输入
<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;
}