【问题标题】:Rendering user profile page in MeteorJS在 MeteorJS 中渲染用户个人资料页面
【发布时间】:2015-11-20 06:31:39
【问题描述】:

我正在尝试为用户创建一个页面,以便他们在登录时可以看到他们上传到网站上的内容。我似乎无法让页面呈现。我已经搜索了所有内容,但似乎找不到任何东西。关于我哪里出错的任何想法?

from my publication.js file

Meteor.publish('myTickets', function() {
  var currentUserId = this.userId;
  return Tickets.find({
    createdBy: currentUserId
  })
});

from the router.js

Router.route('/users/:_id', {
  name: 'userPage',
  waitOn: function() {
    return Meteor.subscribe('myTickets');
  },
  data: function() {
    return Tickets.find({
      userId: this.userId
    })
  }
});

userpage.js

Template.userPage.helpers({
  tickets: function() {
    var currentUserId = Meteor.userId();
    return Tickets.find({
      createdBy: currentUserId
    }, {
      sort: {
        createdAt: -1
      }
    });
  }
});

【问题讨论】:

  • 首先,您是要显示特定用户的信息,还是仅显示当前登录的用户?似乎您有一个定义为“Router.route('/users/:_id'”的路由,但您从未调用给定的“_id”参数。

标签: javascript meteor routes iron-router meteor-blaze


【解决方案1】:

我在评论中问过你到底想做什么(你有一个带参数的路由,但你从不使用它),但无论如何,我想我遇到了你的问题;

您正在使用this.userId 来获取您在路由器中的当前用户ID,但您应该使用Meteor.userId() 代替; this.userId 只能在发布方法中使用。

【讨论】:

  • 我正在尝试显示当前登录的用户票证​​上传。我尝试用Meteor.userId() 切换this.userId,但没有效果。我什至尝试将路线更改为 /mytickets 之类的东西,这将呈现一个视图,但那里什么也没有。
猜你喜欢
  • 2016-10-30
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
  • 2012-01-24
  • 2012-02-21
  • 2016-06-26
相关资源
最近更新 更多