路由返回空白页 [METEOR]

Route returning blank page [METEOR]

我正在尝试为用户个人资料页面创建一个路由,但是当我访问该路由时,它显示为一个完全空白的页面并且在终端中没有任何错误。没有显示任何内容,包括静态 HTML。这是代码:

routes.js

Router.route('/user/:_id', function () {
  this.render('user');
}, {
  name: 'user',
  data: function(){
    return Users.findOne({_id: this.params._id})
  }
});

user.html

<template name="user">
    <p>hello</p>
</template>

目前,我使用的是默认用户帐户包,没有添加任何发布或订阅代码。

不确定是否是这个原因,但我认为对于路由的多个选项,您应该将 this.render 封装在一个操作参数中。像这样:

Router.route('/user/:_id', {
    name: 'user',
    data: function() {
        return Users.findOne({_id: this.params._id})
    },
    action: function () {
       this.render('user');
    }
});

Source

您确定 Users 是一个现有的集合吗?

At the moment, I am using the default user accounts package and have not added any publication or subscription code.

在这种情况下,启用自动发布后,您的问题可能会通过更改

得到解决
data: function(){
  return Users.findOne({_id: this.params._id})
}

进入:

data: function(){
  return Meteor.users.findOne({_id: this.params._id})
}

虽然很奇怪这不会在您的控制台中引发错误...

我在终端中收到一个错误:"Users is not defined": http://meteorpad.com/pad/eciFidhwHmLhjWmF3/Leaderboard

在您的数据函数中,尝试替换为 Meteor.users.findOne({_id: this.params._id})

如果您修复我列出的 HackPad,Meteor.users 将无法工作,因为当前版本的 HackPad 不支持具有 Meteor.users 的足够晚的 Meteor 版本。但是,如果您注释掉您的数据功能,您至少应该看到该页面。