Node.js EJS,include上的节点js forEach循环
当使用此语法在“组件”上循环时,EJS抱怨task不是对象,但如果替换为task,则可以 有什么想法吗Node.js EJS,include上的节点js forEach循环,node.js,loops,foreach,include,ejs,Node.js,Loops,Foreach,Include,Ejs,当使用此语法在“组件”上循环时,EJS抱怨task不是对象,但如果替换为task,则可以 有什么想法吗 <? tasks.forEach( function( task ){ ?> <?- include('_task'); ?> <? }) ?> 如果您询问如何将任务传递给您的include,那么应该是这样的: <? tasks.forEach(function(task) { ?> <?- include('
<? tasks.forEach( function( task ){ ?>
<?- include('_task'); ?>
<? }) ?>
如果您询问如何将
任务
传递给您的include
,那么应该是这样的:
<? tasks.forEach(function(task) { ?>
<?- include('_task', {task: task}) ?>
<? }) ?>
顶级数据会自动包含,但需要显式传递局部变量。请参见您将任务替换为任务的具体位置。_id?这正是我需要的:)谢谢@skille。。。我假设它可以像“任务”一样访问对象,但事实并非如此。@Kris当您执行
include
时,它将作为一个完全独立的模板呈现,因此它无法从周围的模板中看到任何内容。默认情况下,它只传递与原始模板相同的locals
对象。EJS甚至不知道您的任务
变量存在,您的
块中的代码只是直接编译到模板函数中,EJS没有任何理解。这是有道理的。再次感谢:)也许我参加聚会迟到了,但我找到的唯一获得foreach
使用include
模板的方法是使用所写的