Dust.js - визуализация предварительно скомпилированного анонимного шаблона на стороне клиента

Есть ли способ отрисовать предварительно скомпилированный шаблон, который не имеет имени на стороне клиента в DustJs?

Потому что документация показывает только с именем:

<!-- precompiled templates -->
<script type="text/javascript" src="/lib/templates.js"></script>
<script type="text/javascript">
// The templates are already registered, so we are ready to render!
dust.render('hello', { world: "Saturn" }, function(err, out) {
  document.getElementById('output').textContent = out;
})
</script>


РЕДАКТИРОВАТЬ: Хорошо, вероятно, это слишком сложно для загрузки файла, и я просто заметил, что когда мы компилируем без указания имени (для того, чтобы скомпилировать много шаблонов одновременно), путь к шаблону устанавливается как имя по умолчанию. Это даже редактируется с флагом --pwd.
Поэтому всегда есть имя, чтобы вышеуказанная функция могла работать.

1 ответ

Решение

Похоже, вы хотели бы загрузить шаблоны по их пути после того, как они были предварительно скомпилированы. Dust позволяет вам делать это через совместимость с AMD (require.js).

http://www.dustjs.com/guides/setup/

После того, как вы загрузили require.js и установили define.amd.dust = true, ты можешь позвонить dust.render с путем к шаблону и Dust автоматически загрузит его для вас.

Обратите внимание, что для этого необходимо, чтобы вы скомпилировали свои шаблоны с --amd флаг.

<script src="r.js"></script>
<script type="text/javascript">
    define.amd.dust = true;
    require(["lib/dust-full"], function(dust) {
        dust.render('path/to/your/template', function(err, out) { ... });
    });
</script>

В хранилище Dust есть пример использования AMD для загрузки шаблонов.

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