Как использовать HTML-файлы и шаблоны частичного просмотра в dot.js
Я использую doT.js в качестве движка шаблонов, и мне нужно использовать HTML-файлы в качестве шаблонов частичного представления. Есть ли способ передать URL вместо строки HTML для шаблонов?
1 ответ
Решение
Я не смог найти никаких документов по этому вопросу, но легко использовать XHR-запросы для чтения HTML-файлов и передачи в виде строки шаблона:
Предположим, у вас есть метод для получения содержимого файла HTML
function getPartialView (template) {
// Return a new promise.
return new Promise(function(resolve, reject) {
// Do the usual XHR stuff
var req = new XMLHttpRequest();
req.open('GET', "/templates/" + template + ".html", true);
// req.setRequestHeader('Content-Type', 'Application/JSON');
req.onreadystatechange = function() {
if (req.readyState != 4 || req.status != 200) return;
// This is called even on 404 etc
// so check the status
resolve(req.responseText);
};
// Handle network errors
req.onerror = function() {
reject(Error("Network Error"));
};
// Make the request
req.send();
});
}
тогда вы можете использовать его в своем генераторе шаблонов:
getPartialView('myTemplate').then(function (result) {
// getting the template
var pagefn = doT.template(result, settings);
// appending to view
// data is the real data you want to render the template for
document.querySelector('#mayTemplateWrapper').innerHTML = pagefn(data);
});