Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript函数中使用已传递到pug模板中的数组而不进行拆分?_Javascript_Node.js_Pug - Fatal编程技术网

如何在javascript函数中使用已传递到pug模板中的数组而不进行拆分?

如何在javascript函数中使用已传递到pug模板中的数组而不进行拆分?,javascript,node.js,pug,Javascript,Node.js,Pug,我有一个CRUD.js文件,用于将一些变量(包括数组)传递到名为list.pug的pug模板中: router.get('/', async (req, res) => { let {projects, nextPageToken} = await db.list(10, req.query.pageToken); let customers = ["John", "Mary", "Mark"]; res.rende

我有一个CRUD.js文件,用于将一些变量(包括数组)传递到名为list.pug的pug模板中:

router.get('/', async (req, res) => {
  let {projects, nextPageToken} = await db.list(10, req.query.pageToken);
  let customers = ["John", "Mary", "Mark"];

  res.render('projects/list.pug', {
    projects,
    nextPageToken,
    customers,
  });
});
然后在pug文件中,我试图通过循环这些数组,使用javascript构建一个表。然而,当我这样做时,似乎客户并没有被看作是一个字符串数组,而是被看作一个字符串(在尝试循环项目时也会出现类似的问题)。下面是带有javascript的pug模板:

  select(name="customerDropdown", id="customerDropdown" class="btn btn-success dropdown-toggle" onChange="changeEvent()")
    each customer in customers 
      option=customer

  each project in projects
      .media
        a(href=`/projects/${project.id}`)
          .media-body
            h4= "Customer: " + project.customer
            p= "Project manager: " + project.manager

  if !projects.length
    p No projects found.

  if nextPageToken
    nav
      ul.pager
        li
          a(href=`?pageToken=${encodeURIComponent(nextPageToken)}`) More
 script.
    let projects = "!{projects}"
    let customers = "!{customers}"

    console.log(customers.length)
    for (var i = 0; i < customers.length; i++){
      console.log(customers[i])
    }
选择(name=“customerDropdown”,id=“customerDropdown”class=“btn btn成功下拉切换”onChange=“changeEvent()”)
客户中的每个客户
选项=客户
项目中的每个项目
媒体
a(href=`/projects/${project.id}`)
.媒体机构
h4=“客户:”+project.Customer
p=“项目经理:”+项目经理
如果!项目长度
p未找到任何项目。
如果下一个开始
导航
传呼机
锂
(href=`?pageToken=${encodeURIComponent(nextPageToken)}`)更多
剧本
let projects=“!{projects}”
let customers=“!{customers}”
console.log(customers.length)
对于(变量i=0;i

此代码导致打印出客户的每个单独字符(即“J”、“O”、“H”、“N”、“i”、“M”等),而不是“John”、“Mary”、“Mark”,尽管“customerDropdown”中的“customer in customers”循环工作正常。我试图使用这个数组来动态更新页面,那么如何将它作为原始数组而不是字符串/字符数组拉入JS函数?感谢您的帮助

为了将数组从Pug传递到客户端javascript,需要在插值过程中删除引号并使用
JSON.stringify()
,如下所示:

script.
  let projects  = !{JSON.stringify(projects)}
  let customers = !{JSON.stringify(customers)}