如果改变路线,流星停止订阅

时间:2014-10-20 17:44:34

标签: javascript meteor iron-router

我有两条带两个模板的路线。在其中一个中,用户在单击按钮后订阅了一个集合。

 'click #play' : function() {

    Meteor.call('create_game', this._id, function(error, result){
      Meteor.subscribe('game', result);
     });
 }

我想要执行的是在用户更改路线时停止订阅。我本来可以使用Iron-Router的函数waitOn,如果用户更改路由,订阅将被取消,但我想只有当用户点击时才开始订阅,如果他只是路由。

1 个答案:

答案 0 :(得分:2)

当您致电Meteor.subscribe时,您会获得订阅句柄作为返回值。此句柄具有stop()方法,您可以在要停止订阅时调用该方法。所以你可能想要做的就是在某个地方保存这个句柄并在路由改变时调用它:

handle = Meteor.subscribe(...);

在铁路由器回调中:

handle.stop();