首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >铁路由器基本路由和用户路由

铁路由器基本路由和用户路由
EN

Stack Overflow用户
提问于 2015-06-07 12:11:41
回答 1查看 63关注 0票数 0

目前,我正在使用Meteor.js构建一个社交网络,并面临一个路由问题。这是必需的路由器行为:

  1. 在“/”上,如果用户未登录,则重定向到带有登录的langing页面。
  2. 在“/”上,如果用户登录,则获取他的用户名并通过'/: username‘重定向到配置文件页。
  3. 在'/: username‘上,获取用户传递的用户名并呈现他的配置文件。

这是我的解决方案:

代码语言:javascript
复制
Router.map ->

  @route 'base', 

    path: '/'

    waitOn: ->
      waitOnUser()

    action: ->

      say 'base route'
      user = Meteor.user()

      if user? 

        say 'redirecting to username from base route'
        username = user.profile.username
        @redirect '/user/' + username

      else

        @redirect 'hello'

  @route 'profile', {

    path: 'user/:username'
    layoutTemplate: 'mainLayout'
    template: 'profileLayout'

    waitOn: ->

      [ 
        waitOnUser(),
        Meteor.subscribe('pageOwner', @params.username)
      ]

    onBeforeAction: ->

      Session.set('profileOwner', Meteor.users.findOne({'profile.username': @params.username}))
      @next()

    data: ->

      if @ready()

        user = Meteor.users.findOne({'profile.username': @params.username})
        profile = user.profile
        id = user._id
        owner = Meteor.user().profile.username is profile.username
        {
          profile: profile
          userId: id
          owner: owner
        }

    action: ->

      @render()

waitOnUser = ->

  user = Meteor.user()

  handle = 

    ready: ->

      if user?
        true
      else
        false

问题是,每次调用'/:username‘并将其重定向到登录的用户主页时,基本路由都会工作,因此不可能查看其他用户页面。

你能为我的案子提出更好的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-16 23:30:04

找到解决方案,只需更改路由定义的顺序,以便“配置文件”路由在“base”之前被调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30693376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档