2017-10-19 157 views
0

當使用此語法在「組件」上循環時EJS抱怨說任務不是對象,但是如果替換爲task._id,那很好。EJS,包含每個循環的節點js包括

有什麼想法嗎?

<? tasks.forEach(function(task){ ?> 
     <?- include('_task'); ?> 
    <? }) ?> 
+1

您在哪裏將'task'替換爲'task._id'? – skirtle

回答

1

如果你問如何通過taskinclude那麼它會是這樣的:

<? tasks.forEach(function(task) { ?> 
    <?- include('_task', {task: task}) ?> 
<? }) ?> 

頂級數據自動包括在內,但局部變量都需要顯式地傳遞。請參閱https://github.com/mde/ejs#includes

+0

這正是我所需要的:)謝謝@skirtle ...我認爲它可以像訪問'任務'那樣訪問對象,但事實並非如此。 – Kris

+1

@Kris當你做一個'include'時,它會被渲染爲一個完全獨立的模板,所以它不能從周圍的模板中看到任何東西。默認情況下,它只是傳遞與原始模板相同的'locals'對象。 EJS甚至不知道你的'task'變量存在,''塊中的代碼只是直接編譯到模板函數中,而沒有EJS的任何理解。 – skirtle

+0

有道理。再次感謝:) – Kris