Iron Router动态路由到新的集合文档url

时间:2015-05-26 00:42:12

标签: mongodb meteor iron-router

我有一个目标mongo集合。

我正在使用Iron Router通过' / goals /:_ id'

导航到每个目标文档

这适用于点击应用程序。

但是,当用户向集合添加新目标时(通过服务器插入方法),我希望同时自动导航到该页面。

在客户端:

'click #new-goal': () ->
    Meteor.call("newGoal", (error, result) ->
        Router.go('/goal/#{result}')
        console.log "#{result} created and user redirected.")

newGoal方法在服务器上运行,Router.go在回调返回之前运行。

我应该使用" waitOn"还是有更好的实施?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查您的Coffeescript缩进。 Router.go不应该在回调之前发生。

关于Meteor文档所说的论点,这里是文档的片段:

  

当方法完成时(在Meteor.call返回之前可能会或可能不会发生),将使用两个参数调用回调:error和result。如果抛出错误,则错误将是异常对象。否则,错误将是未定义的,返回值(可能未定义)将在结果中。

这是什么意思?

  1. Meteor.call之后的代码将在方法返回之前运行(不包括回调内部的代码)。
  2. 在服务器端方法完成之前,回调将不会运行(它是合乎逻辑的,因为在方法完成之前无法提供响应或错误。它也符合观察到的行为。此外,它是内联的使用实际的流星代码here