我试图编译和渲染上从客户端嵌套泛音飞一次沙尘模板,但我不断收到“错误:模板未找到:[的templatePath]”。 下面的例子中,如果工作我使用不引用任何谐音(如/templates/includes/childTemplate.dust)一个子模板,但不能从一个更高级别的主模板(如/templates/main.dust)。 有没有办法与包括孩子的谐音预编译高水平的模板?
var model = { ... };
$.get('/templates/main.dust', function(tpl) {
var compiled = dust.compile(tpl, 'mainTemplate');
dust.loadSource(compiled);
dust.render('mainTemplate', model, function(err, output) {
if (err) {
console.log(err);
}
$('#target').html(output);
});
});
灰尘的谐音是在渲染时,不编译时间解决,所以没有办法预编译成一个主模板。
相反,尘为你告诉它如何通过使用来加载其他模板的方式dust.onLoad
功能。
dust.onLoad = function(templateName, callback) {
// naive jQuery loading of a new template
$.get('/templates/' + templateName + '.dust', function(data) {
callback(null, data);
});
};
如果您需要在收到后它来编译模板,将它作为第二个参数为callback
和灰尘会编译它。 如果您正在加载预编译模板,只是通过调用评估预编译模板dust.loadSource(data)
,然后调用callback()
你可能会希望在模板预编译步骤,您的工作流程,以烤,也许使用dustc
是已经被包含尘编译器,这样你就不必编译在客户端上(它的速度慢,而且你必须包括dust-full.js
代替dust-core.js
)。
你可能会考虑装载灰尘和模板作为AMD模块。 见http://www.dustjs.com/guides/setup/#amd 。 如果你做到这一点灰尘会的电缆铺设工作onLoad
通过使用自动为您require
。
尘土回购有,你可以在浏览器中处理粉尘不同方式的一些基本的例子。 见例子/基本的浏览器和实例/ AMD 。