Как использовать 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);

  });
Другие вопросы по тегам