Javascript 为什么可以';t帕格是否遍历来自子模板的一些数组/对象?

Javascript 为什么可以';t帕格是否遍历来自子模板的一些数组/对象?,javascript,arrays,pug,javascript-objects,Javascript,Arrays,Pug,Javascript Objects,所以我有一个名为base-default.pug的文件,它设置了我的头部和身体标签。我有一个扩展它的文件,名为index.pug。它只包含两个Javascript对象: localHeadProps:我要生成的特定于index.html的head标记的信息对象 scriptPaths:包含在主体标记底部的脚本文件的相对路径数组 当我尝试对localHeadProps使用each…in循环时,它可以工作,但对于scriptPaths,我得到一个错误,说它未定义。这很奇怪,因为使用!{scriptP

所以我有一个名为base-default.pug的文件,它设置了我的头部和身体标签。我有一个扩展它的文件,名为index.pug。它只包含两个Javascript对象:

localHeadProps:我要生成的特定于index.html的head标记的信息对象 scriptPaths:包含在主体标记底部的脚本文件的相对路径数组

当我尝试对localHeadProps使用each…in循环时,它可以工作,但对于scriptPaths,我得到一个错误,说它未定义。这很奇怪,因为使用
!{scriptPaths}
输出的内容很好,那么它怎么可能是未定义的呢

有人能解释为什么每个…in循环只适用于base-default.pug中的localHeadProps,而不适用于scriptpath或我放入index.pug中的任何其他数组/对象吗

奇怪的是,为了让它工作,我必须在它之前使用if语句检查它是否存在,或者使用Javascript for…in循环。然而,我仍然不明白为什么我必须求助于这些黑客

哈巴狗

extend base-pages/base-default

block localVariables
  -
    //- page-specific head configurations
    const localHeadProps = {
      title: "Best Note Taking App - Organize Your Notes with Evernote",
      description: "Our note taking app helps you capture and prioritize ideas, projects and to-do lists, so nothing falls through the cracks. Start your free trial today!",
      keywords: "HTML, CSS, XML, JavaScript",
      stylesheetPaths: [
        "css/styles.min.css",
      ]
    };
    const scriptPaths = [
      "js/bundle.js",
      "js/vendor.js",
    ];
base-default.pug

include ../abstracts/variables
include layout/head

block localVariables

doctype html
html(lang="en")
  +head(globalHeadProps, localHeadProps)
  body
    h1 Hello Base Page
    //- outputs <p>scriptPaths: js/bundle.js,js/vendor.js</p>
    p scriptPaths: !{scriptPaths}

    //- this doesn't work
    each scriptPath in scriptPaths
      script(src=scriptPath)

    //- this actually works
    each item in localHeadProps
      p=item
包括../abstracts/variables
包括布局/标题
块本地变量
doctype html
html(lang=“en”)
+头部(全局头部支柱、局部头部支柱)
身体
h1你好基本页
//-输出脚本路径:js/bundle.js,js/vendor.js

p脚本路径:!{scriptpath} //-这不管用 scriptPath中的每个scriptPath 脚本(src=scriptPath) //-这确实有效 localHeadProps中的每个项目 p=项目
请将pug更新至最新版本。
我使用pug v.2.0.4和pug cli v1.0.0-alpha6成功编译了您的模板


此外,我假设您没有更改
头中的
脚本路径
变量。

请将pug更新为最新版本。
我使用pug v.2.0.4和pug cli v1.0.0-alpha6成功编译了您的模板


此外,我假设您没有更改
头中的
脚本路径
变量
mixin.

好的。我使用的是gulp pug v.4.0.1,它依赖于pug v.2.0.3,所以我想知道它是否只适用于2.0。4@Deluxateer你找到解决办法了吗?没有,因为我已经跟不上这个问题了。谢谢你的帮助!哦,好的。我使用的是gulp pug v.4.0.1,它依赖于pug v.2.0.3,所以我想知道它是否只适用于2.0。4@Deluxateer你找到解决办法了吗?没有,因为我已经跟不上这个问题了。谢谢你的帮助!