取消订阅页面更改

时间:2012-10-08 18:15:16

标签: coffeescript derbyjs

我正在研究Derby应用程序,似乎无法弄清楚如何取消订阅页面休假。我知道如何取消订阅一般,但挂钩页面似乎是问题。

我现有的代码看起来非常类似于:

get "/somePath", (page, model) ->
    someQueryHere = model.query("somecollection").someMotif()

    model.subscribe someQueryHere, (err, results) ->
        if err?
            ...
            return

        ...

    do page.render

1 个答案:

答案 0 :(得分:1)

你在'页面休假'上的意思是什么?发生整页重新加载时无需取消订阅,无论如何都会终止socket.io连接。

另一方面,如果您想取消订阅客户端页面渲染中的模型,可以尝试使用其中一个render事件:

app.on 'pre:render', ->
  model.unsubscribe someQueryHere

请注意,渲染事件在路由执行后发生,因此您应该注意不要取消订阅您刚刚订阅的查询/路径。

无论如何,更完整的例子有助于更好地理解你的问题。

关于您的示例的另一个注释:page.render()可能应该在subscribe回调中调用。另外,为什么使用do page.render而不是简单地调用它:page.render()