0
我有Vue.js 2的數據對象,看起來像這樣:Vue公司JS 2:計算綁定屬性,數據屬性
data: {
items: [
{
value1: 10,
value2: 10,
valuesum: ""
},
{
value1: 10,
value2: 100,
valuesum: "",
}
]
我渲染數據對象在一個表,並在其上運行計算。我想要計算valuesum
屬性並以某種方式將其存儲在每個對象中。換句話說,我想要的代碼基本上執行此:
data: {
items: [
{
value1: 10,
value2: 10,
valuesum: {{ value1 + value2 }} //20
},
{
value1: 10,
value2: 100,
valuesum: {{ value1 + value2 }} //110
}
]
的computed
屬性似乎並沒有能夠做到這一點。我試着用下面的函數,但是,這並不工作:
function (index) {
for (let i = 0; i < this.items.length; i++){
return this.items[index].value1 + this.items[index].value2;
}
}
最近我設法得到一個答案是做計算在線,但我不能將它的結果綁定到items.total
對象。我的HTML看起來像這樣:
<table id="table">
<thead>
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td>Sum</td>
</tr>
</thead>
<tbody>
<tr v-for="item in items">
<td><input type="number" v-model="item.value1"></td>
<td><input type="number" v-model="item.value2"></td>
<td> {{ item.value1 + item.value2 }} </td>
</tr>
</tbody>
</table>
但我不能添加v-model
它,因爲它不是一個輸入。我想避免在列中添加只讀<input>
,因爲這看起來不是最好的解決方案,也不是很優雅。
爲什麼要將它存儲在一個狀態中的任何特殊原因?理想情況下,我們應該只保留最低限度的所需數據,並按照您的方式獲取所有可能的數據。 – aks
我想在用戶輸入一些數據後將每個數據對象添加到數據庫中。我想知道Vue是否有自己的存儲計算方法,因此我稍後再調用每個對象時不必做相同的計算。 – Shan
您可以使用'watch',然後在您的任何一個值發生變化時更改總數。 – aks