2017-11-11 58 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