Я использую icanhaz.js и усы для загрузки шаблонов, и я загружаю шаблоны усов по требованию, используя следующий метод:
loadTemplate: function(name, callback) {
if (!ich.templates[name+"_template"]) {
jQuery.get("/js/templates/"+name+".mustache", function(data) {
window.ich.addTemplate(name+"_template", data);
callback();
});
} else {
callback();
}
}
Однако проверка переменной данных, которая возвращается в отладчике, иногда возвращается как объект Document, а не как необработанная строка, которую я могу использовать.Я говорю иногда, потому что шаблон загружается по желанию, если HTML-код в файле шаблона не имеет вложенного элемента DOM в верхней части файла.Это очень странное поведение, которое мне хотелось бы объяснить.
Так, например, файл шаблона:
<div>
<div>My name is {{name}}</div>
</div>
будет возвращен как объект Document при загрузке.
Принимая во внимание, что этот файл шаблона:
<div></div>
<div>
<div>My name is {{name}}</div>
</div>
возвращается по мере необходимости в виде необработанной строки.
Я не уверен, почему наличие этого верхнего div без каких-либо дочерних элементов должно иметь значение для шаблона, определяемого как Document вместо строки.Есть идеи?