我正在学习流星的过程。我按照教程创建了microscope。如果有人提交一个帖子流星将重新呈现所有用户的模板。如果有数百个帖子,这可能是非常烦人的,那么用户将回到页面的顶部并松开他的位置。我想实现类似于facebook的东西。当提交新帖子时,模板不会被渲染,而是会出现一个按钮或链接。点击它会导致模板重新渲染并显示新帖子。Facebook like like加载流星新帖
我正在考虑在集合上使用observeChanges
来检测所有更改,它确实会阻止页面显示新帖子,但只有显示它们的方法是重新加载页面。
Meteor.publish('posts', function(options) {
var self = this, postHandle = null;
var initializing = true;
postHandle = Posts.find({}, options).observeChanges({
added: function(id, post) {
if (initializing){
self.added('posts', id, post);
}
},
changed: function(id, fields) {
self.changed('posts', id, fields);
}
});
self.ready();
initializing = false;
self.onStop(function() { postHandle.stop(); });
});
这是正确的道路吗?如果是的话,我如何提醒用户新帖子?否则,执行此操作的更好方法是什么?
谢谢
这似乎并不奏效。它会停止重新渲染,但newData永远不会设置为true。 –
对不起。它看起来像'subscriptionsReady()'可能没有反应(文件不清楚),但补充模板助手是。因此,自动运行不会被触发。相反,您可能需要在订阅处理中使用'ready()'方法或在subscribe函数中使用'onReady()'回调。 –