2016-03-16 4 views
0

Так что я хочу создать определенное количество флажков на основе значения «timesPerWeek». Проблема, с которой я сталкиваюсь, заключается в том, что при попытке createElement я получаю Не могу прочитать свойство «createElement» null. Довольно уверен, что это связано с тем, что JS создает перед HTML, но я не могу понять, что нужно сделать, чтобы сделать так, чтобы я мог вызвать свою функцию, чтобы сделать флажки. Этот код в настоящее время не зависит от timesPerweek, потому что я просто пытаюсь открыть флажок.Meteor создает динамические флажки

JS

'pie':function() 
    { 
    var progress = document.getElementById('progress'); 

     var stuff= progress.createElement('input'); 
     //var stuff = progress.createElement('input'); 
     stuff.type = "checkbox"; 
     stuff.name = "1"; 
     stuff.value = "set1"; 
     stuff.id = "stuff"; 

     var label = progress.createElement('label'); 
     label.htmlFor = "stuff"; 
     label.appendChild(document.createTextNode('pie')); 

     progress.appendChild(stuff); 
     progress.appendChild(label); 

    } 

HTML

<div id="progress" class = "col-md-4"> 
       progress: {{timesPerWeek}} 

       <br/> 

       {{pie}} 


       </div> 

я должен быть в состоянии создать элементы под прогрессом, но он просто умирает с ошибкой, указанной выше.

ответ

0

Правильный способ сделать это в Метеор является использование помощника #each:

<div id="progress"> 
    {{#each timesPerWeek}} 
    <input type="checkbox" name="checkbox{{@index}}"> 
    {{/each}} 
</div> 

Это должно получить вам несколько флажков, чтобы показать.

+0

Отлично работает только в том, что timesPerWeek было всего лишь числом, поэтому я создал функцию, которая вернула массив –

+0

Gotcha. Рад, что сработало! –

Смежные вопросы