简体   繁体   中英

Rendering user profile page in MeteorJS

I'm trying to create a page for users so that when they are logged in they can see the content they've uploaded onto the site. I can't seem to get the page to render. I've searched all over, but can't seem to find anything. Any ideas of where I'm going wrong?

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
      }
    });
  }
});

I asked you in a comment what you exactly wanted to do (you have a route with a parameter, but you are never using it), but anyway, I think I got your problem;

You are using this.userId to get your current user ID in your router, but your should use Meteor.userId() instead; this.userId can only be used in publish methods.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM