我正在尝试为用户个人资料页面创建一个路由,但是当我访问该路由时,它显示为一个完全空白的页面,并且在终端中没有错误。没有显示任何内容,包括静态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>
目前,我使用的是默认用户帐户包,但尚未添加任何发布或订阅代码。
答案 0 :(得分:1)
不确定这是否是原因,但我认为对于路由有多个选项,您应该在动作参数中包含this.render。像这样:
Router.route('/user/:_id', {
name: 'user',
data: function() {
return Users.findOne({_id: this.params._id})
},
action: function () {
this.render('user');
}
});
答案 1 :(得分:1)
您确定Users
是现有收藏吗?
目前,我正在使用默认的用户帐户包 没有添加任何出版物或订阅代码。
在这种情况下,启用自动发布后,您的问题可能会通过更改
来解决data: function(){
return Users.findOne({_id: this.params._id})
}
成:
data: function(){
return Meteor.users.findOne({_id: this.params._id})
}
虽然很奇怪,这并不会在您的控制台中引发错误......
答案 2 :(得分:0)
我在终端收到错误:&#34;用户未定义&#34;: http://meteorpad.com/pad/eciFidhwHmLhjWmF3/Leaderboard
在您的数据功能中,尝试替换Meteor.users.findOne({_id: this.params._id})
如果您修复了我列出的HackPad,Meteor.users将无法正常工作,因为当前版本的HackPad并不支持使用Meteor.users
的足够版本的Meteor。但是,如果您注释掉数据函数,则至少应该看到该页面。