Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-动态添加表行中的所有值_Javascript_Jquery_Angularjs - Fatal编程技术网

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>