Итак, у меня есть файл с именем base-default.pug, который устанавливает мой тег head и body.У меня есть файл, который расширяет его, называется index.pug.Он содержит только два объекта Javascript:
localHeadProps: объект информации для тега head, специфичный для index.html, который я хочу сгенерировать scriptPaths: массив относительных путей к файлу сценария для включения в конец телаtag.
Когда я пытаюсь использовать цикл each ... in для localHeadProps, он работает, но для scriptPaths я получаю сообщение о том, что оно не определено.Это странно, потому что при использовании !{scriptPaths}
содержимое выводится просто отлично, так как же его нельзя определить?
Может кто-нибудь объяснить, почему цикл каждый ... in работает только для localHeadProps в base-default.pug, но недля scriptPaths или любого другого массива / объекта, который я помещаю в index.pug?
Что странного в том, что для того, чтобы он работал, я должен предшествовать ему оператором if, проверяющим, что он существует, или использоватьJavascript для ... в цикле.Тем не менее, я до сих пор не понимаю, почему я должен прибегать к этим взломам.
index.pug
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