Meteor - 用户登录后未更新模板

时间:2016-06-04 12:00:55

标签: meteor meteor-accounts

我使用Accounts-unstyled构建了一个简单用户登录的应用程序。一切正常,除了显示用户数据的模板不会在用户登录时重新呈现。但是如果用户重新加载页面,那么他的数据就会出现。

除了获取正确的用户数据之外,我的代码实际上并不包含与用户相关的任何内容。登录后是否需要手动触发刷新?

该应用程序位于www.barelinks.in。测试登录:user = test ;密码= pwdpwd 。 首次登录时没有任何更改,但如果您重新加载,您将看到用户的数据。

以下是订阅的代码:

if(Meteor.isServer) {
    Meteor.publish('links', function linksPublication(userId) {
        return Links.find({ user: userId });
    });
}

帮助者获取正确的数据(正则表达式用于搜索功能):

Template.body.helpers({
    links: function() {
        var nbSkip = linksPerPage*(Template.instance().page.get() - 1);
        var queryRegex = new RegExp(Template.instance().query.get(), 'i');
        return Links.find({ user: Meteor.userId(), title: queryRegex }, { sort: { createdAt: -1 }, limit: linksPerPage, skip: nbSkip });
    },
});

谢谢!

1 个答案:

答案 0 :(得分:1)

我发现在登录状态下刷新页面时会更新内容。比你可以切换回来,一切都按预期工作。当数据订阅不是应该的时候,我经常会遇到这种情况。

服务器根据登录状态的变化自动更新数据,您需要依赖发布功能中的this.user属性。

if(Meteor.isServer) {
    Meteor.publish('links', function linksPublication() {
        return Links.find({ user: this.userId });
    });
}
相关问题