Es gibt ein paar plain javascript Optionen. Ich habe keine Vue-spezifischen Sachen erwähnt.
Die einfachste, mir wäre, eine getAmount
-Methode zu Ihren Objekten hinzuzufügen, die den Betrag basierend auf Ihren anderen zwei Eigenschaften zurückgeben würde.
z.B.
var item = {
quantity: 3,
price: 5.00,
getAmount: function() {
return this.quantity * this.price
}
}
Obwohl ich würde mit null
als Standardwerte.
Eine zweite Option ist die Verwendung von Objektdeskriptoren. Sie können ein Objekt mit Object.create()
erstellen oder einem bereits vorhandenen Objekt mithilfe von Object.defineProperty()
Eigenschaften hinzufügen. Mit beiden Methoden können Sie einen Objektdeskriptor übergeben, in dem Sie für Ihre Eigenschaft eine definieren können, die Ihren gewünschten Wert basierend auf Ihren anderen Feldern berechnet.
z.B.
var item = Object.create({
quantity: null,
price: null,
}, {
amount: {
get: function() { return this.quantity*this.price }
}
})
nun die amount
Eigenschaft quantity * price
zurückkehren, nur durch item.amount
tun.
Jedes Mal, Preis, Menge und/oder Betragsänderung in Ihrem Objekt, müssen Sie Ihre Summe aktualisieren, indem Sie ein Änderungsereignis auslösen und dann die Berechnung durchführen. – John