2017-03-01 9 views
0

현재 clndr.js 캘린더 및 underscore.js 템플릿을 사용하고 있습니다.Underscore.js 각 함수에 if/else를 추가하십시오.

<% _.each 함수 내에서 if/else 문을 구현하는 데 도움이되는 정보를 찾고 계십니다. 순간 <div class="event <%= event.val %>"></div>에서

<div class="days"> 
    <% _.each(days, function(day) { %> 
    <div class="event <%= day.classes %>" id="<%= day.id %>"> 
     <div class="number"><%= day.day %></div> 
     <% _.each(day.events, function(event){ %> 
      <div class="event <%= event.val %>"></div> 
     <% }) %> 
    </div> 
    <% }); %> 
</div> 

는 대단한 이벤트가 존재 달력에 매일 표시됩니다. 그러나, 나는 또한 이벤트가 존재하지 않는 경우 일 사업부를 추가 할 :

<div class="days"> 
    <% _.each(days, function(day) { %> 
    <div class="<%= day.classes %>" id="<%= day.id %>"> 
     <div class="number"><%= day.day %></div> 
     <% _.each(day.events, function(event){ %> 

      # if the event exists, show this div 
      <div class="event <%= event.val %>"></div> 

      # else if the event does not exist, show this div: 
      <div class="event none"></div> 
     <% }) %> 
    </div> 
    <% }); %> 
</div> 

답변

1

이 일을 변경하지 않는 each 콜백 내에 있다는 사실을. Underscore's template 자바 스크립트를 직접 사용할 수 있습니다.

<% if (event && event.val) { %> 
    <div class="event <%= event.val %>"></div> 
<% } else { %> 
    <div class="event none"></div> 
<% } %> 

예를 들어 간단하기 때문에 다음과 같이 충분할 수 있습니다.

<div class="event <%= event.val || 'none' %>"></div> 
+0

빠른 답장을 보내 주셔서 감사합니다. 방금 테스트되었고'else'는 여러분이 제공 한 코드로 루프에서 실행되는 것처럼 보이지 않습니다. – user3939059

+0

@ user3939059 그것은 실제로 귀하의 데이터가 무엇인지에 달려 있습니다. 나는 당신의 사건에 좀더 가까워지기 위해 약간의 대답을 바꾸었다. –

+0

죄송합니다. 여기에 속도가 느려지지만 '<% _.each (day.events, function (event) {%>'이벤트가없는 요일을 반복합니까? 아니면 이벤트가있는 항목을 반복 만합니다. ? (여전히 다른 사람이 실행할 권한을 얻을 수 없음) – user3939059