2015-10-29 2 views
1

Я искал в Интернете часами, и я не знаю, почему этот код не работает.Ручки имеют контекст родителя

Я пытаюсь пройти через массив, в котором есть еще один массив, который я хочу пропустить. Если я попытаюсь отобразить переменную в этом объекте, она ничего не покажет. Однако, если я попытаюсь записать 'this' или значение, которое я хочу зарегистрировать, он показывает правильный контекст.

<div class="invoice-content"> 
    {{#usageData}} 
    <h2>{{title}}</h2> 
    <table class="bill-detail-table js-table-{{id}}"> 
     <thead> 
      <tr> 
      {{#columns}} 
       {{log this}} 
       {{log label}} 
       <th>{{label}}</th> 
      {{/columns}} 
      </tr> 
     </thead> 
    </table> 
    {{/usageData}} 
</div> 

Когда я вхожу «это», я покажу правильный контекст: Object {label: "Date", value: "foobar"} При входе в систему «ярлык», он также показывает правильное значение: «Дата».

Но по какой-то причине <th>{{label}}</th>, остается пустой. Но я могу показать правильное значение там, показывая <th>{{columns.[0].label}}</th>. Кроме того, я также заметил, что он не проходит через полный массив столбцов. Он только проходит через этот массив один раз.

Моих входные данные выглядят следующим образом: Handlebars input data

я бы очень признателен за любую помощь!

+0

Ваш код работает для меня: http://jsfiddle.net/tomi77/fk5y2zab/ –

+0

Спасибо, что сказал Tomasz! Я запускал свой шаблон как часть html-страницы, а не в теге скрипта, чтобы сделать его более понятным для редактора содержимого для редактирования текста. Но по какой-то причине он сломается, когда он встроен в html, и не будет, если вы поместите html в тег скрипта. Вероятно, из-за того, что браузер вычеркивает некоторые недопустимые html (например, {{#colums}}). –

ответ

0

Проблема заключалась в том, что шаблон был встроенным, а не в тегах сценариев. Я думаю, что в браузере произошли некоторые неприятные вещи, из-за которых сценарий ломался. Как только я переместил все обратно в тег скрипта, проблема была решена!

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