2016-07-27 3 views
0

Я пытаюсь выяснить, как включить несжатую пыль в виде пыли.Не скомпилированные партитуры в dust.js

main.dust:

<div class="container"> 
    {>"toolbar"/} 

</div> 

toolbar.dust:

<div class="row"> 
    toolbar 
    {somevariable} 
</div> 

Это пытается загрузить скомпилированный частичный названный toolbar.js не является Неоткомпилированной шаблона toolbar.dust?

Я нашел это сообщение здесь: How do you include a raw, uncompiled partial in dust.js?, который позволит мне загружать файлы, но любые {variables}, которые они содержат, не заменяются.

Я не хочу, чтобы компилировать представления каждый раз, когда я их меняю. Как включить нескомпилированный шаблон с замененными переменными?

ответ

1

Вы можете добавить обработчик onLoad в Пыль, чтобы сообщить ему, как он должен попытаться загрузить частичные. По умолчанию Dust ожидает, что вы предварительно зарегистрировали все шаблоны, которые собираетесь использовать.

Дополнительная информация: Loading Templates (это звучит, как вы хотите загрузить Неоткомпилированная шаблоны)

Примечание: Вы не должны действительно сделать это в производстве, так как компиляция шаблонов гораздо медленнее, чем делает их. Если вы используете что-то вроде Express, найдите время, чтобы настроить сборку или плагин Express для компиляции для вас. Есть примеры в каталоге examples в репозитории Dust GitHub. Обработчик

OnLoad может выглядеть следующим образом (предполагается, что вы бежите Пыль на server-- идея та же для клиента):

dust.onLoad = function(templateName, callback) { 
    fs.readFile(templateName + '.dust', { encoding: 'utf8' }, function(err, data) { 
    callback(null, data); 
    }); 
}; 

Обратите внимание, что callback использует узел errback подпись, так что вы можете упростить этот код:

dust.onLoad = function(templateName, callback) { 
    fs.readFile(templateName + '.dust', { encoding: 'utf8' }, callback); 
}; 

Там является example on our GitHub repo that does basically this.

+0

Я строю строго на клиента, а конец написан на PHP. То, что я пытаюсь сделать, - использовать некомпилированные представления в «dev» и скомпилированных шаблонах (используя Grunt) в «production», чтобы предотвратить шаг сборки при разработке. Я нашел это сообщение: http://stackoverflow.com/questions/29304979/compiling-and-rendering-complex-dust-js-templates-on-the-client Когда я добавляю dust.onLoad, похоже, запуск для каждого вида? Как я могу использовать это только для частичных? – Jonathan

+0

Идея для клиента такая же, просто замените readFile на загрузку AJAX. – Interrobang

+0

Nevermind мой последний комментарий У меня были некоторые другие проблемы, связанные с работой, спасибо за помощь! – Jonathan

Смежные вопросы