2014-02-26 3 views
0

Help! 이것은 너무 어려워서는 안된다. 그래서 나는 쉽게 뭔가를 놓치고 있다고 가정한다 ...underscore.js 템플릿의 객체 반복하기

나는 밑줄 템플릿으로 사용되는 변수를 가지고있다.

var template = '<% _.each(favorites, function(value, key) { %> <li><%= key %>: <%= value %></li> <% }); %>'; 

그리고 당신은 요청할 수 있습니다 '즐겨 찾기'에 무엇 예를 들면 다음과 같습니다 (거기에 더는하지만 단순화하기 위해,이 중요한 코드가이)입니까? 이것은 JSON 객체에서 가져온 것입니다 (다른 JSON을 잘라내는 것).

"favorites" : [ 
    { "food" : "shrimp" }, 
    { "drink" : "none" } 
] 

키/값 쌍을 템플릿에서 출력하는 방법을 알아낼 수없는 이유는 무엇입니까? 원하는 작업은 다음과 같습니다.

<li>food: shrimp</li> 
<li>drink: none</li> 

내가 뭘 잘못하고 있니?

+1

은 무엇 당신이 가진 것은 콜렉션이 아닌 객체입니다 같은

favorites: [ {type: "food", name: "shrimp"}, {type: "drink" name: "none"} ]; 

그런 다음 당신이 당신의 템플릿을 생성 할 수 있습니다. ** 배열 **을 반복하고 점 표기법으로 키에 액세스해야합니다. 그러나 당신의 데이터 구조는 옳지 않습니다 ... – elclanrs

답변

1

나는 다른 데이터 구조, 적절한 컬렉션 시작 했죠 :

var template = [ 
    '<% _.each(favorites, function(item) { %>', 
    '<li><%= item.type %>: <%= item.name %></li>', 
    '<% }); %>' 
].join(''); 
+0

그건 완전히 작동합니다. 고마워, 고마워, 고마워! – SeeMeCode