【问题标题】:Meteor - How do I automatically redirect user to page when data changesMeteor - 如何在数据更改时自动将用户重定向到页面
【发布时间】:2015-05-15 22:52:51
【问题描述】:

我正在编写一个 Meteor 应用程序,它从机器(想想物联网)接收外部数据并显示大量图表、图形等。到目前为止一切都很好。应用程序中有多个页面(到目前为止,每种图表类型一个)。现在,随着数据“实时”输入,存在数据“集”完全重置的情况(正常)。 IE。所有数据不再有效。发生这种情况时,我想将用户重定向回“主页”页面,无论他们在哪里(嗯,除了主页)。

我希望使它成为一个“全局”项目,但也不希望有太多开销。我注意到 Iron:router (我正在使用)有一个 onData() 方法,但这似乎有点——高开销——因为它只是指示重置的一条数据。

由于每个页面都相当“独立”并且用户可以在页面上停留很长时间(图表会随着基础数据的变化而自动更新),我什至不确定 Iron:router 是最好的方法全部。

这是 Meteor 1.0.X 顺便说一句。

只是寻找一种干净的“正确” Meteor 方式来处理这个问题。我可以检查每个页面的重新显示逻辑,但会认为更抽象(阅读:全局)的方法会更长期友好(所以如果我们添加更多的图表页面,它仍然会自动工作)..

谢谢!

【问题讨论】:

    标签: meteor iron-router


    【解决方案1】:

    这是cursor.observeChanges http://docs.meteor.com/#/full/observe_changes 的工作 设置一个集合作为“重置通知”服务器,在插入新通知时向所有用户广播。

    在客户端:

    criteria = {someCriteria: true};
    query = ResetNotificationCollection.find(criteria)
    var handle = query.observeChanges({
      added: function (id, user) {
        Router.go('home');
      }
    });
    

    每当发生重置时:

    notification = { time: new Date(), whateverYouWantHere: 'useful info' }
    ResetNotificationCollection.insert notification
    

    在插入时,所有观察到集合变化的客户端都会响应一个高效的小 DDP 消息。

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 2014-06-10
      • 2016-01-03
      • 2020-02-21
      • 2014-09-17
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多