2014-10-18 123 views
6

我能够使用客户端模板为nunjucks,因为我从node.js预编译并公开JS模板文件。我打电话给客户端模板,如下所示:如何在浏览器客户端使用nunjucks宏?

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) }} 

,但不知道如何让宏然后在客户端一次又一次地调用它。我确实努力通过控制台的检查,但没有运气。

回答

3

当我想在客户端渲染一个宏时,我使用nunjucks.renderString方法导入包含这些宏的文件,然后调用它 - 一次性完成。我的用例是将一个宏渲染为HTML,然后使用Javascript将其添加到页面中。示例用例如下:

var renderString = "{% import 'packageForms.html' as forms %} \n"; 
renderString = renderString + '{{ form.packageForm("task") }}'; 
var renderedHTML = nunjucks.renderString(renderString); 
$('#page').append(renderedHTML) 
+0

请注意,“slim”版本没有'renderString' – aaaaaa 2016-11-28 07:16:40

相关问题