我可以使用nunjucks的客户端模板,因为我从node.js预编译并公开JS模板文件。我像这样调用客户端模板:
nunjucks.render('partials/some-template.html', { abc: 123 })
并返回一个字符串。
我怎么能按照我的尝试调用宏,但这样做错了。首先按照node.js在页面上声明宏,然后在Node.js中调用连续的时间:
{% include 'macros/checkbox.html' %}
...
{{ checkbox('you cool?', 'cool', false) }}
{{ checkbox('you collected?', 'collected', false) }}
但不确定如何获取宏,然后在客户端再次调用它。到目前为止,我确实努力在控制台中进行检查,但没有运气。
答案 0 :(得分:3)
当我想在客户端渲染宏时,我使用nunjucks.renderString方法导入包含宏的文件然后调用它 - 一次性完成。我的用例是将宏呈现为HTML,然后使用Javascript将其添加到页面中。一个示例用例是:
window.addEventListener("load", function() {
function onTwttrReady() {
twttr.events.bind('tweet', function(e){
if(!e) return;
ga('send', 'social', 'twitter', 'tweet', theURL);
console.log('tweet');
})
}
if (window.twttr) {
onTwttrReady();
} else {
document.getElementById('twitter-wjs')
.addEventListener('load', onTwttrReady);
}
});