我正在學習流星的過程。我按照教程創建了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()'回調。 –