如何从`/`重定向到`/foo/<;id>;`使用FlowRouter和MeteorJS?

如何从`/`重定向到`/foo/<;id>;`使用FlowRouter和MeteorJS?,meteor,flow-router,Meteor,Flow Router,在我的场景中,我希望每个访问我们根URL的人都自动重定向到一个URL,该URL包含一个用于协作和即时满足的文档 此处,router.coffee代码为: FlowRouter.route '/', action: -> console.log "I'm home!" FlowRouter.go 'myProject' name: 'myHome' FlowRouter.route '/my/:projectId', subscriptions: (param

在我的场景中,我希望每个访问我们根URL的人都自动重定向到一个URL,该URL包含一个用于协作和即时满足的文档

此处,router.coffee代码为:

FlowRouter.route '/', 
  action: ->
    console.log "I'm home!"
    FlowRouter.go 'myProject'
  name: 'myHome'

FlowRouter.route '/my/:projectId',
  subscriptions: (params) ->
    @register 'currentProject', Meteor.subscribe 'project', params.projectId
  action: ->
    BlazeLayout.render 'myBody'
  name: 'myProject'
我希望根URL重定向到
/my/:projectId
,但我不确定如何检索自动生成的
projectId
,并使用
FlowRouter.go
FlowRouter.redirect
重定向

  • 这可能吗
  • 如果是,如何进行

  • 谢谢你的帮助

    由于路由
    操作执行时数据可能不可用,
    最好是模板级别重新路由

    使用
    模板[name].onCreated()函数可能是个好主意
    并在其中放入类似以下代码的内容:

    pID = ... // Get the user project ID from wherever you saved it
    var params = {projectId: pID}; 
    
    // Set the project URL including the :projectId parameter and re-route the user
    FlowRouter.go("myProject", params); 
    

    @“这个问题你们有答案了吗?”玛丽娅·詹姆斯——还并没有。如果我自己发现了一个解决方案,我会自行回答。@toszter:我认为如果您使用的是FlowRouter.go或FlowRouter.Redirect,您必须指定一个路由器。对于尝试访问根URL(/)的用户,项目ID应该是什么?它是针对所有人的修复还是基于用户名/session var/@我为每个新用户创建一个基线项目(带有projectId)。因此,当有人注册并且他们有一个持久会话时,我想将他们重定向到他们的项目页面,以便他们可以与其他用户协作。我会尝试一下,看看这是否符合我的目标。让你可能不相信,我还没有尝试过。根据到目前为止我对模板arch的了解,我认为您在这里的路径是正确的,使用
    FlowRouter.getParam('projectd')
    提取值是我唯一要添加的部分。此外,此处不需要使用路由级别订阅,因为模板级别就足够了。