Meteor - 如何在数据更改时自动将用户重定向到页面

时间:2015-05-15 14:25:31

标签: meteor iron-router

我正在编写一个Meteor应用程序,它从机器中获取外部数据(想想物联网)并显示大量图表,图表等。到目前为止一切顺利。应用程序中有各种页面(到目前为止每种图形类型一个)。现在,当数据“实时”馈送时,存在(正常)数据“设置”完全重置的情况。即所有数据都不再有效。发生这种情况时,我想将用户重定向回“主页”页面,无论它们在哪里(嗯,主页除外)。

我希望将此作为“全球”项目,但也不要太多开销。我注意到铁:路由器(我正在使用)有一个onData()方法,但这似乎有点高开销 - 因为它只是一个数据表明重置。

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

这是Meteor 1.0.X BTW。

只是寻找一个干净的“适当的”流星方式来处理这个问题。我可以检查每个页面的重新显示逻辑,但是会认为更抽象的(读取:全局)方法会更长期友好(因此,如果我们添加更多页面的图表,它会自动生效)..

谢谢!

1 个答案:

答案 0 :(得分:3)

这是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消息。