javascript - 如何让模板助手变得非响应式(Reactive)?

标签 javascript meteor

我对 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/

相关文章:

javascript - FS.Store.GridFS 由变换创建 : false

javascript - 获取 Meteor 中用户定义模板的列表

MeteorJS - 如何防止匿名客户端订阅集合?

javascript - 如何使用帐户密码包判断用户的电子邮件是否已存在

php - AJAX PHP 上传问题

javascript - IndexOf、Search 和 Contains 似乎无法在更大的字符串中找到子字符串

javascript - 损坏的响应式设计(仅在 iPhone 上)- 可以使用 javascript 强制执行媒体查询吗?

arrays - 如果字段数组和参数数组相交,则过滤 MongoDb 集合

javascript - Phonegap - 在 xcode 中配置调试和发布版本

javascript - Bootstrap 3 : position absolute not work with form-control class