【问题标题】:reactivity disabling in meteor not loading data at first load流星中的反应性禁用在第一次加载时不加载数据
【发布时间】:2016-08-08 05:25:47
【问题描述】:

我在流星中将一个订阅作为非反应性订阅我正在将 angular2 用于客户端

反应性禁用工作正常,但是当我刷新页面时我遇到了一个问题,我制作的特定数据 {reactive:false} 没有加载,但是如果我导航到任何其他视图,如果我从任何其他视图导航,它就会出现也查看其。它只有在第一次加载时才有问题。如果我删除 {reactive:false} 它的工作完美

这是我要发布的代码

Meteor.publish("ThreesixtyMenu", function() {
    return ThreesixtyMenu.find({});

  });

这里是我如何订阅它的代码

 Meteor.subscribe('ThreesixtyMenu')
 this.menudata = ThreesixtyMenu.find({},{reactive:false})
 return this.menudata;

希望快速解决,提前谢谢

【问题讨论】:

    标签: meteor angular publish subscribe


    【解决方案1】:

    在订阅准备就绪之前,您不应使用reactive: false 调用find。数据到达客户端需要一些时间,因此您的find 在数据存在之前不会返回任何内容。

    如果启用反应性,find 会被调用两次。第一次调用返回undefined(原因同上),第二次在订阅数据到达时触发,给你正确的结果。

    总而言之:没有反应性,你必须等到订阅准备好才能获取数据。

    【讨论】:

    • 非常感谢您提供这些信息。但是你能告诉我如果我不调用 find 应该如何编写代码
    • 我不知道如何将解决方案集成到您的代码中,因为我不熟悉 Angular,但 subscribe 接受不同类型的回调,包括 onReady 回调:docs.meteor.com/api/pubsub.html#Meteor-subscribe
    猜你喜欢
    • 2019-11-21
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多