2016-06-01 3 views
0

새로운 템플릿을로드하는 대신 Meteor에서 Meteor의 배열 중 {{#each}}을 (를) 사용하여 반복을 시작하도록 할 수 있습니까? 예를 들어, 사용자가 풀다운 선택기에서 값을 선택하면 Meter를 시작하여 해당 템플리트 내의 배열을 반복하여 새로운 선택 자 목록으로 완전히 새로운 템플리트를로드하는 대신 다른 여러 선택기 목록을 채 웁니다.Meteor에서 템플릿 반복 시작하기

의이 템플릿 내에 칩시

사용자가 템플릿 다른 선택기 값을 선택
. 
. 
. 
<form class="input-field col s6 card-selector"> 
     <select multiple"> 
      <option value="" disabled selected>Select Students</option> 
      {{#each StudentList1}} 
       <option value= '{{FullName}}'>{{formatName FullName}} ({{Level}}) {{RoomWk1}}</option> 
      {{/each}} 
     </select> 
</form> 
. 
. 
. 

: 그것은 제 #each의 반복 강제

<select class="week-selector"> 
     <option value="" disabled selected>Week</option> 
     <option value="Week1">Week 1</option> 
     <option value="Week2">Week 2</option> 
     <option value="Week3">Week 3</option> 
     <option value="Week4">Week 4</option> 
     <option value="Week5">Week 5</option> 
</select> 

~ :

<form class="input-field col s6 card-selector"> 
    <select multiple"> 
     <option value="" disabled selected>Select Students</option> 
     {{#each StudentList1}} 
      <option value= '{{FullName}}'>{{formatName FullName}} ({{Level}}) {{RoomWk2}}</option> 
     {{/each}} 
    </select> 
</form> 

다음을 제외하고는 동일한 새 템플릿을로드하는 것이 더 효율적입니다. 다중 선택기 값의 경우

답변

1

세션이 반응적이고 세션을 사용하여 세션을 완료 할 수 있습니다 (세션 패키지가 있는지 확인).

//we don't want the session value from the previous search/events 
Template.templateName.onRendered(function(){ 
    Session.set('sessionName', undefined); 
}); 

//I'd probably use onDestroyed instead of onRendered 
Template.templateName.onDestroyed(function(){ 
    Session.set('sessionName', undefined); 
}); 

//template events 
'change .week-selector': function(){ 
    var selected = $('.week-selector').find(":selected").text(); 
    Session.set('sessionName', selected) 
} 

//template helper 
StudentList1: function(){ 
    var session = Session.get('sessionName'); 
    if(session !== undefined){ 
     //return some documents using the session value in your find() 
    } else { 
     //return documents without session value 
    } 
} 

편집 : 내가는 .text을 발견() 이벤트에서 선택한 옵션하지만 당신은 값을 반환하거나 발견 값/텍스트로 원하는대로 할 무료입니다.

관련 문제