2012-04-19 7 views
8

http://handlebarsjs.com/expressions.html에 따르면,이 작업을 수행 할 수 있어야한다 :템플릿에서 개체의 속성에 액세스하려면 어떻게합니까?

<h1>{{article.title}}</h1> 

하지만이 유성에서 작동시킬 수없는 것.

<template name="content"> 
    {{#if item}} 
    <p>{{item.name}}</p> 
    {{/if}} 
</template> 

여기 항목을 반환하는 자바 스크립트입니다 : 여기에 내 템플릿의

Template.content.item = function() { 
    return Items.findOne({ _id: Session.get("list_id") }); 
    }; 

그리고 네 항목이 실제로 name :-)

내가 이렇게

라는 속성을 가지고 않습니다, Firebug에 오류가 표시됩니다. ret is undefined

이 내용은 evaluation.js까지 추적 할 수 있습니다.

for (var i = 1; i < id.length; i++) 
    // XXX error (and/or unknown key) handling 
    ret = ret[id[i]]; 
return ret; 

오류가 발생하면 retwindow 개체를 참조합니다. 그게 뭐야?

답변

12

당신은 사용해야합니다 {{#with 개체}}

개체가 같은 경우 : 당신이 할 수있는 템플릿에서

my_object = { 
    name : 'my_name', 
    prop : 'my_prop' 
} 

가 :

여기
<template name="my_template"> 
    {{#with my_object}} 
     <p>Name is {{name}}<p> 
     <p>Prop is {{prop}}</p> 
    {{/with}} 
</template> 

당신이가는 :)

+3

http://tryHandlebarsjs.com 사이트 (일부 JSON과 템플릿에 붙여 넣기)를 사용하면 이 경우 잘못된 점을 파악하는 가장 빠른 방법 중 하나입니다. 그런 다음 잘못 될 수있는 것이없는 경우 템플릿과 데이터에만 집중합니다. –

+0

@Paperwork : 다시 한번 감사드립니다. 나는 지연이 무엇인지 궁금 해서요. 그리고 제 질문이 StackOverflow에 가입하도록 영감을 준 것 같습니다. 그래서 오늘 우리는 모두 좋은 일을했습니다 :-) – Samo

+0

@Samo : 정확히 말해서, 그것은 좋은 제안이었습니다. made); –

관련 문제