Code Sample 1
This is the code example for 04_01 in the exercise files. The HTML file shown below is our starting point.
The HTML Document - Start
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>String output</title> <script type="module" src="Backpack.js"></script> <script type="module" src="script.js"></script> </head> <body> <main> <article> <h1>Everyday Backpack</h1> <ul> <li>Volume:</li> <li>Color:</li> <li>Age:</li> <li>Number of pockets:</li> <li>Left strap length:</li> <li>Right strap length:</li> <li>Lid status:</li> </ul> </article> </main> </body> </html>
The HTML in the body is removed because we want the JavaScript file to add this content using a template literal. This will allow us to add in some JavaScript expressions so that we can get the values of each property directly from a backpack object and display these along with the property names.
The HTML Document - Finish
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>String output</title> <script type="module" src="Backpack.js"></script> <script type="module" src="script.js"></script> </head> <body> </body> </html>
The only difference between these two HTML files is that in the second version, there is no HTML in the body.
The JavaScript file
/**
* Use template literals to output HTML
* @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
*
*/
// import { doc } from "prettier";
import Backpack from "./Backpack.js";
const everydayPack = new Backpack(
"Everyday Backpack",
30,
"grey",
15,
26,
26,
false,
"December 5, 2018 15:00:00 PST"
);
const content = `
<main>
<article>
<h1>${everydayPack.name}</h1>
<ul>
<li>Volume: ${everydayPack.volume}</li>
<li>Color: ${everydayPack.color}</li>
<li>Age: ${everydayPack.backpackAge()}</li>
<li>Number of pockets: ${everydayPack.pocketNum}</li>
<li>Left strap length: ${everydayPack.strapLength.left}</li>
<li>Right strap length: ${everydayPack.strapLength.right}</li>
<li>Lid status: ${everydayPack.lidOpen}</li>
</ul>
</article>
</main>
`;
document.body.innerHTML = content;
Just a note on this, the line importing doc from prettier was enabled in the code from the exercise files, but it was giving me an error so I disabled it and this seems to have fixed the problem without causing any additional problems as far as I can tell.