Skip to content
Snippets Groups Projects
Commit a8342ba7 authored by Thomas Fritsch's avatar Thomas Fritsch
Browse files

D.3. Propriétés et méthodes statiques : La classe PageRenderer

parent ebffd0a4
No related branches found
No related tags found
No related merge requests found
export default class PageRenderer {
static titleElement;
static contentElement;
static renderPage(page) {
if (this.titleElement) {
this.titleElement.innerHTML = page.renderTitle();
}
if (this.contentElement) {
this.contentElement.innerHTML = page.render();
}
}
}
import data from './data.js';
import Component from './components/Component.js';
import HomePage from './pages/HomePage.js';
const title = new Component('h1', null, ['La', ' ', 'carte']);
document.querySelector('.pageTitle').innerHTML = title.render();
import PageRenderer from './PageRenderer.js';
const homePage = new HomePage(data);
document.querySelector('.pizzasContainer').innerHTML = homePage.render();
PageRenderer.titleElement = document.querySelector('.pageTitle');
PageRenderer.contentElement = document.querySelector('.pizzasContainer');
PageRenderer.renderPage(homePage);
import Component from '../components/Component.js';
import Page from './Page.js';
import PizzaThumbnail from '../components/PizzaThumbnail.js';
export default class HomePage extends Component {
export default class HomePage extends Page {
constructor(pizzas) {
super(
'section',
null,
'La carte',
pizzas.map(pizza => new PizzaThumbnail(pizza))
);
}
......
import Component from '../components/Component';
export default class Page extends Component {
title = '';
constructor(title, children) {
super('section', null, children);
this.title = title;
}
renderTitle() {
return `<h1>${this.title}</h1>`;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment