我努力将数据从一个模板传递到另一个模板,并且考虑到这一点,我想知道这是不是我的问题。我使用内置帐户系统,我添加了新用户和身份验证,当用户登录时,我将它们转发到新模板。我希望能够在该模板中使用他们的详细信息,但我很难找到最佳方法。
最初,我认为我可以简单地使用:Router.go('userPage', {user:username});
,它不会出错,但不起作用。在我的模板中,我使用:<p>Welcome {{user}}</p>
使用{{> user}}
会引发'Can't find template, helper or data context key: username'
错误。
有什么想法吗?
编辑:忽略其余部分,重新启动Meteor服务器后,此功能正在运行。
认为我在这里有一个更大的问题,所以添加更多细节:
从表单中获取一些信息,然后根据结果进行路由:
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
会返回一个名称,但我无法将其添加到模板中。
答案 0 :(得分:0)
&#34;用户名&#34;未定义,您应该使用Meteor.user().username
或者更好的是,您应该使用currentUser
预定义帮助程序,其中包含您可以在页面之间传递的当前登录用户。
<p>Welcome {{currentUser.username}}</p>
在模板之间传递数据的常用方法是在路径网址中传输文档_id,然后使用铁路由器检索它并使用文档执行操作。
有时将currentSomething存储在全局帮助器中会更容易,并且有一个响应式Session变量可以跟踪&#34;某些事物_id&#34;但它可能导致相当邋code的代码,小心!