2013-07-21 36 views
3

我正面臨着這個問題。Swig(node.js)包含一個文件並傳遞一個對象

我有一個網頁與包括另一這樣的:

的index.html

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

petsObject是這樣

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

對象當我嘗試呈現我只用這個頁面得到一個空白頁面:

[object Object]

我不知道發生了什麼事情:(

在此先感謝!

+1

我們當然也需要看'pets.html'的內容。但是,這也應該是一個帶有字符串(打字錯誤?)的標籤:'{%include「pets.html」%}' –

+0

我使用隱藏文本區域,並填充'JSON.stringify(object)'。然後在'$(document).ready()'後面的JS中讀取值並執行'JSON.parse($('。hiddentextarea')。val());'' – elporfirio

回答

8

看來你需要使用:

{% include pets.html with pets %} 

根據docs for include

本地聲明的環境變量是傳遞到默認包含的模板。

此外,還建議對性能的方面包括使用後的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 %} 

試圖輸出Objectš本身將simply produce [object Object]

new Object().toString() === "[object Object]" 
相關問題