2012-05-25 2 views
0

Meteor handlebars 템플릿에서 Meteor Session 키 값 쌍을 출력하고 싶습니다.Meteor Session 키 값 쌍을 Handlebars 템플리트에 어떻게 출력 할 수 있습니까?

http://docs.meteor.com/#session

내 Template.name.name의 js 파일에서 세션 및 Session.keys을 반환 시도하고 아무 소용이 핸들에 #each있다.

세션 키를 반복하기 위해 다음을 시도했지만 개체를 ​​반환하려고 시도했지만 작동하지 않았습니다.

세션 키를 반복하고 다음과 같은 JSON 목록을 반환하려고 시도했습니다. { "MyName로": "내 가치", "에는 myname1": "myvalue2", "myname3": "myvalue은"}

_.each(Session.keys, function(element, index, list){ 

}); 
+0

하여 좋은 솔루션을 물어 비슷한 질문입니다. something.user = Session.get ('user'); 여기서 user는 객체입니다. 그렇게하면 이름 충돌이 발생하지 않습니다. iteration이 작동한다면 나는 이것을 객체에 모두 설정 한 다음 그것을 template var로 설정한다. – jonathanKingston

+0

키 (이름)로 키를 호출하면 개별 키/값 쌍에 대해 작동합니다. Meteor Session 객체를 반복하고 내용을 표시하고 싶습니다. 나는 일하고 있지만 다른 각도에서해야만했다. 또한, 세션과 함께 이상한 경험을 겪고 있지만 나는보기 전에 손에 표시되고 생각합니다. 별도의 문제. –

+0

예, 당신이 그걸 위해 무엇을 사용하고 있는지 확실하지 않았습니다. session 패키지가 .keys 속성을 사용하는 것처럼 보이기 때문에 가능한 가장 좋은 접근 방법이라고 생각합니다. – jonathanKingston

답변

0

이 믿을 수 없을만큼 추한 해결책이 될 수 있지만 지금은 작동합니다. 누군가가 더 나은 해결책을 찾으면 답을 게시하십시오. 분명히 JSON 또는 다른 형식의 형식으로 반환 할 수 있습니다.

Handlebars.registerHelper('getsessions', function() { 
    var a = '<div class="span2"><b>name</b></div><div class="span2"><b>value</b></div><br />'; 
    _.each(Session.keys, function(element, index, list){ 
     a = a + '<div class="span2">' + index + '</div>' + 
     '<div class="span2">' + element + '</div><div class="span2"></div><br />'; 
    }); 
    return a; 
    }); 

그런 다음 템플릿에 나는이

{{#getsessions }}{{/getsessions}} 

넣어 그리고 HTML에서 유성 세션 내용을 표시합니다.

내가 사냥하거나 다른 것을 게시해야하는 부작용이 있습니다. Meteor.startup에서 Meteor Session 객체를 채 웁니다.하지만 위의 코드는 매번 또는 다음 번에 렌더링 될 때까지 대부분 내용을 표시하지 않습니다. 틀 :

S

+1

각 키 이름에 대해 session.get을 수행하면 그 키를 신선한 상태로 유지해야합니다. :) – jonathanKingston

관련 문제