2016-01-23 73 views
0

我正在寻找将Swig模板引擎应用于变量内容的过滤器。将Swig模板引擎应用于变量的内容

假设我有以下代码:

var swig = require("swig"); 

var str = "{{ hello }}"; 
var hello = "Hello world"; 
var contents = "{{ str }} {% raw %}{{ str }}{% endraw %}"; 

contents = swig.render(contents, { locals: { str: str, hello: hello }}); 
console.log(contents); 

这将打印以下

{{ hello }} {{ str }}

但我想它打印以下代替

Hello world {{ str }}

基本上,我找一遍应用痛饮发动机到str变量的内容是这样的过滤器:

{{ str | render }} {% raw %}{{ str }}{% endraw %} 

这可能与痛饮?

回答

0

明白了。这里的过滤器:

swig.setFilter('render', function (input, l) { 
    return swig.render(input, { locals: l }); 
}); 

如下使用它的模板:

"{{ str | render(_ctx) }} {% raw %}{{ str }}{% endraw %}"