Javascript AngularJS-动态添加表行中的所有值
我有一个表格,当用户在每个单元格中输入每个值时,他们将在字段中输入数据,最后一个单元格需要用其总数进行更新。有了这个片段,我得到了Javascript AngularJS-动态添加表行中的所有值,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个表格,当用户在每个单元格中输入每个值时,他们将在字段中输入数据,最后一个单元格需要用其总数进行更新。有了这个片段,我得到了45+90+36。我知道使用jQuery很容易,但我想在Angular中尽可能地简单 <tr> <td rowspan="4"><span class="textRotate">TESTING</span> </td> <td>XXXX</td> <td>
45+90+36
。我知道使用jQuery很容易,但我想在Angular中尽可能地简单
<tr>
<td rowspan="4"><span class="textRotate">TESTING</span>
</td>
<td>XXXX</td>
<td>
<input id="testingInput" type="text" ng-model="tableVal.xxxxPrevention">$</td>
<td>
<input id="testingInput" type="text" ng-model="tableVal.xxxxAppraisal">$</td>
<td>
<input id="testingInput" type="text" ng-model="tableVal.xxxxInternalFailure">$</td>
<td>
<input id="testingInput" type="text" ng-model="tableVal.xxxxxExternalFailure">$</td>
<td>
<input id="testingInput" type="text" ng-model="tableVal.xxxxPerformance">NA</td>
<td ng-model="tableVal.xxxTotal">{{tableVal.xxxxPrevention + tableVal.xxxxAppraisal}}</td>
<td>%</td>
</tr>
测试
XXXX
$
$
$
$
NA
{{tableVal.xxxxPrevention+tableVal.xxxxevaluation}
%
为什么不使用$scope.$watch()
前
您有两个选择:
解决方案1:
您可以将输入的类型
设置为编号
,而不是文本
(对于HTML 5):
使用$scope
上的方法通过将ng模型
传递给该方法来计算数字:
$scope.tableVal.xxxtotal=function(){
返回(+$scope.tableVal.xxxx预防)+(+$scope.tableVal.xxxx评估);
}
并在视图中更新此td:
<td>{{ tableVal.xxxTotal(); }}</td>
{{obj.total();}}
测试
XXXX
$
$
$
$
NA
{{(tableVal.xxxxx预防|编号)-(tableVal.xxxxx评估|编号)}
%
感谢您的建议,解决方案2不起作用,但解决方案1很好。还有一个疑问。当文本框中输入的值超过4位时,它会说“为什么?请尝试将表达式更改为“{(tableVal.xxxxPrevention)-(tableVal.xxxxValuation)}”。它起作用了,请阅读本文了解更多详细信息。谢谢,它可以工作,tableVal.xxxTotal没有得到当前的总数,当它在console.log中打印未定义时,有什么想法吗?
<tr>
<td rowspan="4"><span class="textRotate">TESTING</span>
</td>
<td>XXXX</td>
<td>
<input id="testingInput" type="number" ng-model="tableVal.xxxxPrevention">$</td>
<td>
<input id="testingInput" type="number" ng-model="tableVal.xxxxAppraisal">$</td>
<td>
<input id="testingInput" type="number" ng-model="tableVal.xxxxInternalFailure">$</td>
<td>
<input id="testingInput" type="number" ng-model="tableVal.xxxxxExternalFailure">$</td>
<td>
<input id="testingInput" type="number" ng-model="tableVal.xxxxPerformance">NA</td>
<td>{{tableVal.xxxxPrevention + tableVal.xxxxAppraisal}}</td>
<td>%</td>
</tr>
<td>{{parseInt(tableVal.xxxxPrevention) + parseInt(tableVal.xxxxAppraisal)}}</td>
<td>{{ tableVal.xxxTotal(); }}</td>