gpt4 book ai didi

javascript - 如何使部分文档在 Meteor 中不响应

转载 作者:行者123 更新时间:2023-11-30 00:11:17 25 4
gpt4 key购买 nike

大多数 Meteor 都围绕着集合和游标,并在它们出现在集合中并符合条件时获取新文档。然而,我正在处理更大的文档,这些文档包含多个字段并且具有深层且不可预测的结构。顶层有清晰的schema,但有些子文档是不可预测的json数据。

但是让我们看一个更简单的例子:

Reports = new Mongo.collection('reports'); 

Meteor.publish('reports', function() {
return Reports.find({});
});

然后在客户端,我打开一个报告,使用相当复杂的不仅是 html 呈现功能将其放在屏幕上,然后在报告中嵌入了自由文本评论字段。当它们发生变化时,我想自动保存它们

Meteor.call("autosaveReport",reportId,comment);

然后有meteor方法写在评论里

Meteor.methods({
"autosaveReport": function(reportId,comment) {
Reports.update({_id:reportId},{$set:{comment:comment}});
}
);

问题是,每次自动保存评论时,Meteor Tracker 都会重新运行所有订阅并查找与此报告相关的内容。由于报告很大且呈现复杂,重新加载对用户来说是可见的,破坏了无缝自动保存的目的。

那么,问题 - 是否可以仅在 mongo 文档的某些部分触发 react 性?目前我已经通过手动比较渲染的新旧文档解决了这个问题,如果内核没有差异,则停止重新渲染。这感觉很奇怪,而且与 meteor 精神背道而驰。

最佳答案

在为模板设置数据上下文的助手或路由中,在查找中使用 {reactive: false}:

return Reports.find(query,{reactive: false});

这样,当底层对象发生变化时,助手就不会更新。

然而,该标志是全有或全无,它不会让您选择要观察和忽略哪些变化。

关于javascript - 如何使部分文档在 Meteor 中不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391843/

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