В попытке избежать повторения я пытаюсь использовать усы для шаблонов как на стороне сервера, так и на стороне клиента. У меня есть шаблон что-то вроде следующего:
<html>
<head>...</head>
<body>
<table>
<tbody id="#this">
{{rows}}
<tr>{{row}}<tr>
{{/rows}}
</tbody>
</table>
</body>
</html>
Это прекрасно работает для моих шаблонов на стороне сервера. На стороне клиента, однако, у меня возникли некоторые проблемы. Я могу успешно загрузить шаблон, используя ajax, но мне не нужно все это для обновления строк таблицы.
$(function () {
var template;
$.ajax('templates/thetemplate.mustache', {
success : function (data) {
template = $('#this', data).html();
},
dataType : 'html'
});
});
Когда я использую вышеупомянутый jQuery для получения содержимого элемента #this
, строки {{rows}}
и {{/rows}}
удаляются из результата, а <tr>{{row}}</tr>
между ними возвращаются успешно. Как я могу получить все содержимое?
Я пробовал $('#this', data).contents();
, который дает те же результаты, и $('#this', data).val();
, который возвращает пустую строку. Использование $(data).find('#this')
вместо этого дает те же три результата. Я также попытался установить dataType вызова ajax на 'text'
без видимого эффекта.
Я понимаю, что, вероятно, мог бы выполнить то, что хотел (не дублируя части моих шаблонов для использования на стороне клиента и сервера), используя партиалы, и что это позволило бы избежать передачи большего количества шаблонов, чем мне действительно нужно клиенту, просто чтобы его выбросили, но это не отвечает на мой вопрос. (но хорошие решения приветствуются)
Спасибо