Swig(node.js)包含一个文件并传递一个对象

时间:2013-07-21 21:21:54

标签: node.js swig-template

我正面临这个问题。

我有一个包含其他内容的页面:

的index.html

{{ set pets = { pets : petsObject } }}
{{ include pets.html }}

petsObject是一个像这样的对象

petsObjects: [
{ name : "cat" },
{ name : "dog" }
]

当我尝试渲染页面时,我得到一个空白页面,只有这个:

[object Object]

我对发生的事情一无所知:(

提前致谢!

1 个答案:

答案 0 :(得分:9)

似乎你需要使用:

{% include pets.html with pets %}

根据docs for include

  

默认情况下,本地声明的上下文变量 not 传递给包含的模板。

还建议性能在包含的术语后使用only关键字,如下所示:

{% include pets.html with pets only %}

除此之外,它取决于pets.html的内容,你没有在这里包含。但是,请确保您尝试输出name

{% for pet in pets %}
  {{ pet.name }}
{% endfor %}

或使用像json_encode()这样的过滤器对其进行格式化:

{% for pet in pets %}
  {{ pet|json_encode }}
{% endfor %}

尝试自simply produce [object Object]输出Object

new Object().toString() === "[object Object]"