2016-06-22 4 views
0

Hallo, ich habe ein View-Modell, aus dem ich Kapitalzahlung und Kapital bezahlt bekomme, ich benutze einen Foreachloop wie diesen, der funktioniert.Wie kann ich zwei Werte außerhalb eines View-Modells hinzufügen KNOCKOUT JS

//  self.capital_open = ko.computed(function() { 
//   var sum = 0; 
//   $.each(self.paymentdatas(), function (index, payment) { 
//     sum += parseFloat(payment.capital_payment()) - parseFloat(payment.capital_paid()) ; 
//   }); 
//   return sum.toFixed(2); 
//  }); 

Aber da gibt es nur ein Array aus meiner Sicht Modell ist ich eine foreach-Schleife nicht wirklich verwenden, um so meine Frage ist, wie kann ich ohne Verwendung einer foreach-Schleife diese beiden Werte nur subtrahieren.

Ich versuchte diesen Weg, aber funktioniert nicht.

self.capital_open = ko.computed(function() { 
    var sum = 0; 
    self.paymentdatas(), function (index, payment) { 
    sum += parseFloat(payment.capital_payment()) - parseFloat(payment.capital_paid()) ; 
    } 
    return sum.toFixed(2); 
}); 

paymentdatas() enthält ein Array mit capital_payment und capital_paid

+0

Können Sie uns zeigen, was erhalten Sie, wenn Sie 'console.log (self.paymentdatas())'? Aus den Antworten und Ihren Kommentaren habe ich die Unklarheit bezüglich Ihres Datenformats ... – user3297291

Antwort

0
var sum = 0; 
var result = paymentdatas(); 
return sum += parseFloat(result[0]) - parseFloat(result[1]); 

haben Sie versucht, so etwas wie das?

+0

Das funktioniert nicht, da Sie 0 und 1 als 2 Arrays verwenden, wo ich angegeben habe, dass es nur 1 Array gibt, wo ich die Informationen von – FaF

+0

bekommen muss Ich denke, dass ich nicht alles, was Sie Problem gut verstehen. Aber wenn result = das paymentdatas array, so sind 0 und 1 capital_payment und capital_paid. Oder sie sind auch Array, so dass Sie etwas mehr brauchen. – Kiho

+0

funktioniert die for-Schleife, die ich arbeite, aber anstelle der for-Schleife möchte ich nur Subtraktion für nur ein Array machen, da es nur 1 Array in paymentdatas gibt, wenn es mehr Arrays gäbe würde ich die for-Schleife verwenden, die mich berechnen würde Summe von allem. – FaF

0

ok, wie über dieses:

self.capital_open = ko.computed(function() { 
    var payment = parseFloat(self.paymentdatas().capital_payment()); 
    var paid = parseFloat(self.paymentdatas().capital_paid()); 
    return (payment - paid).toFixed(2); 
}); 
+0

es sagt kann nicht lesen Eigenschaft capital_payment – FaF

+0

also vielleicht ist es kein Array mehr? Ich habe erwähnt, dass es ein Array ist, aber vielleicht ist es nur ein Objekt ... –