2015-04-02 2 views
0

Я пытаюсь создать маршрут для страницы профиля пользователя, но когда я посещаю маршрут, он полностью очищается и без ошибок в терминале. Ничего не отображается, включая статический HTML. Вот код:Маршрут, возвращающий пустую страницу [METEOR]

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> 

На данный момент я использую пользователь по умолчанию составляет пакет и не добавил публикацию или коды подписки.

ответ

1

Вы уверены, что Users это существующая коллекция?

На данный момент я использую пакет учетных записей пользователей по умолчанию и не добавил ни одной публикации или кода подписки.

В этом случае при включенном autopublish, ваша проблема, вероятно, решена путем изменения

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

в:

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

хотя это странно, это не выдаст ошибку в консоли ...

1

Не уверен, что это причина, но я думаю, что с несколькими вариантами маршрута вы должны инкапсулировать this.render в параметр действия. Что-то вроде этого:

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

Source

0

Я получаю сообщение об ошибке в терминале: «Пользователи не определены»: http://meteorpad.com/pad/eciFidhwHmLhjWmF3/Leaderboard

В функции данных, попробуйте заменить Meteor.users.findOne({_id: this.params._id})

Если вы исправить HackPad я перечислил, Meteor.users не будет работать, так как текущая версия HackPad не поддерживает достаточно поздно версии Метеор с Meteor.users , Однако, если вы закомментируете свою функцию данных, вы должны хотя бы просмотреть страницу.

Смежные вопросы