0

我在我的网站上使用 nodejs + express + swigjs 并卡住了。我有一个<select>包含<option>由传递给我的模板的变量填充的 s 。选择一个选项后,我想在 a<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 错误的情况下通过。

4

3 回答 3

3

使用json 过滤器,你应该设置好!

$('#addpiece').click(function(event){
    var jsoned = {{ media|json }};
    console.log(jsoned);
});
于 2013-07-26T15:13:02.313 回答
0

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

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

数组是这样的:

media = [ [ 'a1', 'b1', 'c1' ],  [ 'a3', 'b2', 'c2' ] ]
于 2014-05-29T06:22:43.847 回答
0

{{ media }} needs to produce javascript-proper code. It can't be just an object. Try converting it server-side to JSON and then read it by your client-side javascript.

于 2013-07-03T19:56:25.343 回答