我是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,因为表格行是在服务器上预先创建的。我可以添加东西到单独的行或单元格。你有什么建议? –