【问题标题】:How to redirect from `/` to `/foo/<id>` using FlowRouter and MeteorJS?如何使用 FlowRouter 和 MeteorJS 从 `/` 重定向到 `/foo/<id>`?
【发布时间】:2015-11-03 03:25:30
【问题描述】:

在我的场景中,我希望访问我们根 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,但我不确定如何使用 FlowRouter.go FlowRouter.redirect

  1. 这可能吗?
  2. 如果是,怎么做?

感谢您的帮助!

【问题讨论】:

  • @toszter 你有问题的答案吗?
  • @MariyaJames --- 还没有。如果我自己找到解决方案,我会自行回答。
  • @toszter:如果你使用 FlowRouter.go 或 FlowRouter.redirect,我认为你必须指定一个路由器
  • 尝试访问根 URL (/) 的用户的项目 ID 应该是什么?它是一个解决方案还是基于用户名/会话 var/...?
  • @Izack --- 我为每个新用户创建了一个基线项目(带有 projectId)。因此,当有人注册并且他们有一个持久会话时,我想将他们重定向到他们的项目页面,以便他们可以与其他用户协作。

标签: meteor flow-router


【解决方案1】:

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

使用Template.[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); 

【讨论】:

  • 我会试一试,看看它是否符合我的目标。
  • 令您难以置信的是,我还没有尝试过。我想根据我迄今为止对模板拱门的了解,您在这里走在正确的道路上,使用FlowRouter.getParam('projectId') 拉取值是我要添加的唯一一点。另外,这里不需要我使用路由级别订阅,因为模板级别就足够了。
猜你喜欢
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2016-03-02
  • 2017-02-22
  • 2011-05-25
相关资源
最近更新 更多