你能在脚本中渲染swigjs吗?

时间:2013-06-29 02:38:22

标签: javascript node.js express swig-template

我正在使用nodejs + express + swigjs作为我的网站而被卡住了。我有一个<select>,其中包含<option>,其中包含传递给我模板的变量。选择我想要的选项后,在<script>内,找到该选项并在页面的其他位置使用它。

你能用swig做到吗?我查看了他们的文档并且没有找到允许这种情况发生的过滤器/选项/标签。我很想看到一个例子。谢谢!

编辑:这是我正在尝试做的事情。

我的控制器使用以下指令呈现模板:

res.render('pages/edit.html', {
    page: res.locals.page,
    content: results,
    media: media,
    directives: directives
});

在我的模板中,我想要执行以下操作:

$('#addpiece').click(function(event){
    var jsoned = {{ media }};
    console.log(jsoned);
});

media是一个对象数组。

但无论我如何过滤数据,如果没有发生javascript错误,它都无法通过。

3 个答案:

答案 0 :(得分:3)

使用json filter,您应该设置!

$('#addpiece').click(function(event){
    var jsoned = {{ media|json }};
    console.log(jsoned);
});

答案 1 :(得分:0)

{{ media }}需要生成适合javascript的代码。它不能只是一个对象。尝试将服务器端转换为JSON,然后通过客户端javascript读取它。

答案 2 :(得分:0)

我遇到了同样的问题,并且解决了添加“安全”而不是“json”的问题。

    $('#addpiece').click(function(event){
    var jsoned = {{ media|safe }};
});

数组的位置如下:

media = [ [ 'a1', 'b1', 'c1' ],  [ 'a3', 'b2', 'c2' ] ]