Перенос данных с router.go() в Iron Router
Я изо всех сил пытаюсь передать данные из одного шаблона в другой, и думаю об этом, мне интересно, если это все равно моя проблема. Я использую встроенную систему учетных записей, добавляю новых пользователей и работаю аутентификацию, и когда пользователь входит в систему, я перенаправляю их в новый шаблон. Я хотел бы иметь возможность использовать их детали в этом шаблоне, но я изо всех сил пытаюсь найти лучший способ сделать это.
Сначала я думал, что могу просто использовать: Router.go('userPage', {user:username});
который не дает ошибок, но не работает. В моем шаблоне я использую: <p>Welcome {{user}}</p>
С помощью {{> user}}
бросает 'Can't find template, helper or data context key: username'
ошибка.
Есть идеи?
РЕДАКТИРОВАТЬ: игнорировать остальное, после перезапуска сервера Метеор это теперь работает.
Думая, у меня есть большая проблема здесь, поэтому добавляя больше деталей:
Извлечение некоторой информации из формы и затем маршрутизация на основе результата:
Meteor.loginWithPassword(username, password, function(err) {
if (err) {
console.log('Logging in failed');
} else {
console.log('Logging in succeeded');
console.log(username);
Router.go('userPage');
}
});
Затем я хочу открыть этот шаблон и передать данные пользователя, который только что вошел в систему:
<template name="userPage">
<div class="container">
<h1>Welcome {{username}}</h1>
</div>
<p>User Page</p>
</template>
Если я использую <p>Welcome {{currentUser.username}}</p>
Я не получаю ошибок, но и без имени. Meteor.user().username
возвращает имя, но я не могу получить это в шаблоне.
1 ответ
"имя пользователя" не определено, вы должны использовать Meteor.user().username
Или еще лучше, вы должны использовать currentUser
предопределенный помощник, который содержит текущего вошедшего в систему пользователя, который вы можете передавать между страницами.
<p>Welcome {{currentUser.username}}</p>
Обычный способ передачи данных между шаблонами - это передача документа _id в URL-адресе маршрута, затем извлечение его с помощью Iron Router и выполнение ваших действий с помощью документа.
Иногда проще хранить currentSomething в глобальном помощнике с реактивной переменной Session, отслеживающей "нечто _id", но это может привести к довольно неаккуратному коду, будьте осторожны!