我是Vue的新手,對我來說很容易!這是情況。必須有比我在這裏做的更好的方式。Vue - 如何將表列綁定到數據對象?
我有一個簡單的2列HTML表:
<table id="contacts">
<tbody>
<tr>
<th class="column-1">
Contact Id
</th>
<th class="column-2">
Applications assigned count
</th>
</tr>
<tr class="odd" id="contacts_tr_1">
\t <td class="column-1">
1
</td>
\t <td class="column-2">
247
</tr>
<tr class="even last" id="contacts_tr_2">
\t <td class="column-1">
2
</td>
\t <td class="column-2">
0
</td>
</tr>
<tr class="even last" id="contacts_tr_2">
\t <td class="column-1">
3
</td>
\t <td class="column-2">
44
</td>
</tr>
<tr class="even last" id="contacts_tr_2">
\t <td class="column-1">
.........
</td>
\t <td class="column-2">
.........
</td>
</tr>
<tr class="even last" id="contacts_tr_2">
\t <td class="column-1">
10
</td>
\t <td class="column-2">
76
</td>
</tr>
</tbody>
</table>
我想更新「應用程序分配數」一欄(但僅限於某些行),由結果來決定的AJAX調用。因此,假設該表具有10行,則AJAX調用可能會說行1,行4和行7的「應用程序分配計數」列的值需要更新,例如247人,80人和356人。我正在考慮使用這樣的JSON對象作爲我的Vue數據對象,因爲AJAX響應看起來像這樣。
data: {
num_of_applications_assigned: [
{
"party_id": "1",
"num": "247"},
{
"party_id": "4",
"num": "80"},
{
"party_id": "7",
"num": "356"}
]
},
我認爲有可能是綁定的「應用程序分配count」列到被通過AJAX調用更新Vue的數據對象的方式,但我不明白的方式做多增加這個其他一個獨特的v-文本給每個人單元例如
<div v-text="num_of_applications_assigned_1"></div>
<div v-text="num_of_applications_assigned_2"></div>
etc
然而,這導致我寫更新這些V-文本與AJAX響應的結果時,一些很費解的代碼,因爲我必須動態地構建引用:
let vm = this;
jQuery.ajax({
url: myurl
}).then(function(response) {
for (var i = 0, len = vm.num_of_applications_assigned.length; i < len; i++) {
var party_id = vm.num_of_applications_assigned[i].party_id;
var dref = 'vm.num_of_applications_assigned_'+party_id;
var dnum = vm.num_of_applications_assigned[i].num;
eval(dref + ' = ' + dnum + ';');
}
});
是,我知道eval是不好的 - 這就是爲什麼我在這裏尋求幫助!什麼是更好的方法呢,還是Vue不適合這種情況?
使用v-的指令,是的VUE是被動的,所有你需要做的是從Ajax調用和表格將與更新重新解析結果更新數據。 –
在這種情況下,我不認爲我可以使用v-for,因爲表格行是在服務器上預先創建的。我可以添加東西到單獨的行或單元格。你有什麼建議? –