Руль не заполняет таблицу
Я использую Handlebars (v 1.0.0), чтобы заполнить таблицу в HTML. Однако как-то это не заполняет таблицу, как я привык.
Вот мой шаблон:
{{#if users}}
<table>
{{#each users}}
<tr>
<td>{{username}}</td>
<td>{{email}}</td>
</tr>
{{/each}}
</table>
{{else}}
<h3>No users found!</h3>
{{/if}}
Поэтому я не нахожу пользователей, потому что не вижу "Пользователи не найдены!" и когда я вызываю пустой объект, он показывает «Пользователи не найдены!».
Когда я не использую таблицу и распечатываю этих пользователей, как в следующем примере. Имена пользователей и почтовый адрес »будут отображаться в моем HTML.
{{#if users}}
{{#each users}}
{{username}}<br/>
{{email}}<br/>
{{/each}}
{{else}}
<h3>No users found!</h3>
{{/if}}
Вот как мой шаблон построен в JavaScript:
var htmlSource = $(data).html();
var template = Handlebars.compile(htmlSource);
var compiled = template(usersArray);
that.$el.html(compiled);
Теперь, когда я console.log скомпилировал объект, он еще не показывает таблицу.
Вы знаете, почему это не работает, и вы можете мне помочь?
РЕДАКТИРОВАТЬ:
Я просто протестировал еще несколько и обнаружил, что данные будут отображаться в HTML, когда я опускаю<table>
теги. Однако<tr>
а также<td>
не будет отображаться в HTML. Данные в нем будут показаны.
РЕДАКТИРОВАТЬ 2: Я обнаружил, что это, похоже, проблема JQuery или Javascript. Когда я console.log htmlSource, HTML-шаблон изменяется на это:
{{#if users}}
{{#each users}}
{{/each}}
{{else}}
<h3>No users found!</h3>
{{/if}}
<table><tr>
<td>{{username}}</td>
<td>{{email}}</td>
</tr></table>
Как видите, таблица перемещена за пределы оператора if. Я пробовал другие версии jquery (2.0.2, 2.0.3, 2.0.1, 1.10.2), но это не сработало. Я пытался использоватьinnerXHTML Однако скрипт работает так же, как jQuery.
Так что я думаю, что это может быть проблема FireFox (хотя я пытался 25 и 26), Chrome делает то же самое ... может быть, что-то в EcmaScript ??
Я дам вам знать в ближайшее время ...
РЕДАКТИРОВАТЬ 3:
Я создал HTML-файл с нужным мне HTML. С помощью скрипта я получаю нужный мне раздел HTML и помещаю его в переменную данных.
Теперь при консольной регистрации данных (console.log (data)) нет ничего плохого. Когда консоль регистрирует данные с помощью jQuery, html изменяется: console.log ($ (data));
Кажется, что-то там не так ... но только при использовании табличных тегов. Это то, что jQuery не может обработать? Я не знаю. Я знаю, как преодолеть эту проблему с помощью тега script ... Хотя я хотел бы загрузить это с помощью require;)
Постскриптум nemesv спасибо за редактирование;)