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 для загрузки шаблонов.