2016-01-23 3 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 }}

В основном , Я ищу фильтр, который применяет двигатель Swig к содержимому переменной str снова, как это:

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

Возможно ли это с Swig?

ответ

0

Got it. Вот фильтр:

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

Используйте его в шаблоне следующим образом:

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