Javascript 铁路由器基本路由和用户路由
目前我正在用Meteor.js构建一个社交网络,并且面临一个路由问题。这就是所需的路由器行为:Javascript 铁路由器基本路由和用户路由,javascript,meteor,iron-router,Javascript,Meteor,Iron Router,目前我正在用Meteor.js构建一个社交网络,并且面临一个路由问题。这就是所需的路由器行为: 在“/”上,如果用户未登录,则重定向到具有登录名的语言页面 在“/”上,如果用户已登录,则获取其用户名并通过“/:username”重定向到配置文件页面 在“/:username”上,通过传递的用户名抓取用户并呈现其个人资料 这就是我的解决方案: Router.map -> @route 'base', path: '/' waitOn: -> wa
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”并重定向到登录用户主页时,基本路由都会工作,因此无法查看其他用户的页面
您能为我的案例提出更好的解决方案吗?找到了解决方案,只需更改路由定义的顺序,以便在“base”之前调用“profile”路由