gpt4 book ai didi

jquery - 当数据库发生变化时手动渲染 meteor 模板

转载 作者:行者123 更新时间:2023-12-01 07:14:45 25 4
gpt4 key购买 nike

我有一个meteorjs模板,我用它来渲染一些记录。我想要做的是,当数据库发生任何更改时,我想手动调用模板渲染方法。我可以仅从 DOM 重新加载单个模板来反射(reflect)更改吗?我的代码是

<template name="textlines">
<table class="table table-striped table-bordered table-condensed table-hover listing"
id="content_listing-table">
<thead>
<tr>
<th>Text Lines</th>
</tr>
</thead>
<tbody>
{{#each textline}}
<tr>
<td>
<a href="#" data-id={{_id}} class="edit"> {{texts}}</a>
</td>
</tr>
{{/each}}
</tbody>
</table>
</template>

我的 meteor 渲染方法就像

Template.textlines.rendered = function () {
$("#content_listing-table").dataTable();
}

现在我想在数据库上执行 CRUD 操作后手动调用此 Template.textlines.rendered 方法。我不知道我问的是对还是错,可能还是不可能。我在数据表方面遇到一些问题。所以我想每次手动刷新模板,将数据库返回的内容添加到dataTable中。谢谢

最佳答案

您似乎正在使用 jQuery DataTables 插件,并且在使用数据库更新该插件维护的 DOM 时遇到了困难。

如果是这样,您可以观察您的集合并使用他们的 API 进行更改。

例如:

Template.textlines.created = function() {
var _watch = Collection.find({});
var handle = _watch.observe({
addedAt: function (doc, atIndex, beforeId) {
$('#content_listing-table').dataTable().fnAddData(doc);
},
changedAt: function(newDoc, oldDoc, atIndex) {
$('#content_listing-table').dataTable().fnUpdate(newDoc, atIndex);
},
removedAt: function(oldDoc, atIndex) {
$('#content_listing-table').dataTable().fnDeleteRow(atIndex);
}
});
};

此 StackOverflow answer 中有更多信息.

关于jquery - 当数据库发生变化时手动渲染 meteor 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20440401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com