2017-11-11 115 views
0

HTML总和纳克模型在NG重复不工作

<tr ng-repeat-start="marks in pagedItemss"> 
    <td> 
    <input type="text" ng-model="marks.aaa" ng-pattern="/^[0-9]*$/" maxlength="3"> 
    </td> 
    <td> 
    <input type="text" ng-model="marks.bbb" ng-pattern="/^[0-9]*$/" maxlength="3"> 
    </td> 
    <td> 
    <span ng-model="sum" ng-bind="calculateSum()"></span>{{sum ? sum : 0}} 
    </td> 
</tr> 

控制器ng-model

$scope.calculateSum = function() { 
    var sum = 0; 
    for (var i = 0;i<$scope.pagedItemss.length;i++) 
    { 
     sum += $scope.pagedItemss[i]["aaa"]+$scope.pagedItemss[i]["bbb"]; 
    } 
    $scope.sum=sum; 
    return sum; 
} 

一笔不工作。我给出的值为(aaa:25,bbb:30),但它显示的并排值如02530

+0

你可以发布'pagedItems'值吗? – Priz

+0

检查我刚刚做出的这个调度程序:https://plnkr.co/edit/2yRbexZtYHLbDBsSHNyH?p=preview。我认为这很接近你想要的。 –

回答

0

当您采用input元素的值与type="text"时,值将为String

在JS,所述+运算符连接的字符串:

0 + '25' + '30' = '02530'


一种可能的解决将是改变输入框键入number

<input type="number" ...>


或者你能不能对它们进行操作前的文本值转换为Number(有很多方法可以做到这一点的JS):

$scope.calculateSum = function() { 
    var sum = 0; 
    for (var i = 0;i<$scope.pagedItemss.length;i++) 
    { 
    sum += Number($scope.pagedItemss[i]["aaa"])+Number($scope.pagedItemss[i]["bbb"]); 
    } 
    $scope.sum=sum; 
    return sum; 
} 
+0

给定sum + = Number($ scope.pagedItemss [i]“aaa”])+ Number($ scope.pagedItemss [i] [“bbb”]);不工作 – konda

+0

@konda你得到了什么结果? –

0

您需要添加之前的字符串值转换为整数。 例如:

var a = "20", b="30"; 
var c = a+b 
// c will be 2030 

为了得到正确的值parseInt函数()才加这两个值。

var c = parseInt(a)+parseInt(b); 
// c will be 50