我对 Meteor 还很陌生(昨天开始),所以请耐心等待。
我有以下方法来尝试从服务器获取一些消息:
var messages = new Mongo.Collection('messages');
if (Meteor.isServer) {
//Initial first few messages
Meteor.publish("messages", function () {
return messages.find({}, {sort: {createdAt : -1}, limit: 2, reactive : false});
});
}
然后是模板的助手:
Template.card.helpers({
messages: function () {
return messages.find({});
}
});
模板:
<div class="messages-slider">
{{#each messages}}
{{> message}}
{{/each}}
</div>
我试图获取前几条消息并将它们在 DOM 中保持静态,基本上 - 但是,使用上面的代码,模板无论如何都会更新集合。我如何解决它?
最佳答案
find 的reactive
选项仅适用于客户端。在你的助手中使用它:
Session.set('ready', false);
Meteor.subscribe('messages', { onReady: function() {
Session.set('ready', true);
}});
Template.card.helpers({
messages: function () {
if (Session.get('ready')) {
return messages.find({}, {reactive: false});
}
}
});
关于javascript - 如何让模板助手变得非响应式(Reactive)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200575/