2014-05-24 14 views
0

하나의 템플릿에서 다른 템플릿으로 데이터를 전달하는 데 어려움을 겪고 있습니다. 어쨌든 그것이 내 문제인지 궁금합니다. 나는 내장 된 계정 시스템을 사용하고 있으며 새로운 사용자를 추가하고 인증 작업을하고 사용자가 로그인하면 새 템플릿으로 전달합니다. 해당 템플릿에서 세부 정보를 사용할 수 있기를 원하지만이 작업을 수행하는 가장 좋은 방법을 찾는 데 어려움을 겪고 있습니다.Iron Router의 router.go()를 사용하여 데이터를 전송

처음에는 간단하게 사용할 수 있다고 생각했습니다 : Router.go('userPage', {user:username}); 오류는 없지만 작동하지 않습니다. 내 템플릿에 다음을 사용하고 있습니다. <p>Welcome {{user}}</p>

{{> user}}을 사용하면 'Can't find template, helper or data context key: username' 오류가 발생합니다.

아이디어가 있으십니까?

EDIT : 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'); 
      } 
     }); 

내가 다음이 템플릿과 패스를 열고 싶은

사고가 난 그렇게 자세한 내용을 추가 여기에 더 큰 문제가 단지에 로그인 한 사용자의 데이터를 통해 : 나는 <p>Welcome {{currentUser.username}}</p>를 사용하는 경우

<template name="userPage"> 
    <div class="container"> 
     <h1>Welcome {{username}}</h1> 
    </div> 
    <p>User Page</p> 
</template> 

또한 오류하지만 이름을 가져올 수 없습니다. Meteor.user().username은 이름을 반환하지만 템플릿으로 가져올 수 없습니다.

답변

0

"사용자 이름"당신이 현재 당신은 페이지 사이를 통과 할 수 로그인 한 사용자가 들어있는 currentUser 미리 정의 된 도우미를 사용한다, 더 나은 아직

또는 Meteor.user().username를 사용한다, 정의되어 있지 않습니다.

<p>Welcome {{currentUser.username}}</p> 

템플릿 사이에 데이터를 전달하는 일반적인 방법은 다음 경로의 URL에서 문서 _id를 전송 철의 라우터를 검색하고 문서로 물건을 것입니다.

"something _id"를 추적하는 반응적인 세션 변수를 사용하여 currentSomething을 글로벌 도우미에 저장하는 것이 더 쉬운 경우가 있지만 매우 조잡한 코드로 이어질 수 있습니다. 조심하십시오!

+0

흠, 여전히 작동하지 않습니다. '

환영합니다 {{currentUser.username}}

'는 오류가 없으며 어떤 데이터도 전달하지 않습니다. 'Meteor.user(). username'을 로그하면 문자열이 정상적으로 처리됩니다. 계속 더 큰 문제가 있다고 생각합니다. :) 내 질문에 세부 사항을 추가하겠습니다. – Tortex

관련 문제