Cursos / Automação Industrial / Programação Orientada a Objetos / Aula
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Livros</title>
<style>
table, th, td{
border: 1px solid black;
border-collapse: collapse;
}
th,td{
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<h1>CADASTRO DE LIVROS</h1>
<form class="form">
<div>
<label for="titulo">Título:</label><br>
<input type="text" id="titulo"/>
</div>
<div>
<label for="autor">Autor:</label><br>
<input type="text" id="autor"/>
</div>
<div>
<label for="aditora">Editora:</label><br>
<input type="text" id="editora"/>
</div>
<div>
<label for="ano">Ano:</label><br>
<input type="number" id="ano"/>
</div>
<br>
<button type="submit">Cadastrar</button>
</form>
<br>
<br>
<!-- Tabela -->
<div id="livrosview"></div>
<script src="lib/system.js"></script>
<script>
System.defaultJSExtensions = true;
System.import('js/app.js').catch(err => console.error(err))
</script>
</body>
</html>
import { Livros } from "../models/livros";
export class LivrosView{
private _elemento: Element;
constructor(seletor: string){
this._elemento = document.querySelector(seletor);
}
public update(modelo: Livros){
this._elemento.innerHTML = this.templateHTML(modelo);
}
public templateHTML(modelo: Livros):string{
return `
<table>
<tr>
<th>Título</th>
<th>Autor</th>
<th>Editora</th>
<th>Ano</th>
</tr>
${modelo.exibirLivros().map(livro =>{
return `
<tr>
<td>${livro.titulo}</td>
<td>${livro.autor}</td>
<td>${livro.editora}</td>
<td>${livro.ano}</td>
</tr>
`
}).join('')}
</table>
`
}
}
import { Livro } from "../models/livro";
import { Livros } from "../models/livros";
import { LivrosView } from "../views/livrosview";
export class LivroController{
private _inputTitulo: HTMLInputElement;
private _inputAutor: HTMLInputElement;
private _inputEditora: HTMLInputElement;
private _inputAno: HTMLInputElement;
private _livros: Livros;
private _livrosView: LivrosView;
constructor(){
this._inputTitulo = <HTMLInputElement>document.querySelector('#titulo')
this._inputAutor = <HTMLInputElement>document.querySelector('#autor')
this._inputEditora = <HTMLInputElement>document.querySelector('#editora')
this._inputAno = <HTMLInputElement>document.querySelector('#ano')
this._livros = new Livros;
this._livrosView = new LivrosView("#livrosview");
this._livrosView.update(this._livros);
}
public cadastrar(event: Event){
event.preventDefault()
let livro = new Livro(
this._inputTitulo.value,
this._inputAutor.value,
this._inputEditora.value,
parseInt(this._inputAno.value)
)
//console.log(livro);
this._livros.adicionar(livro);
//this._livros.exibirLivros().forEach(livro => console.log(livro));
this._livrosView.update(this._livros);
}
}
Versão 5.3 - Todos os Direitos reservados