title = 'Zöld Zrt';
Az app.component.html fájlt nyissuk meg, és töröljük
a generált tartalmat. Írjuk bele a következőt:
{{title}}
==== Stílus hozzáadása ====
Adjunk az alkalmazásunknak egy kevés stílust.
Szerkesszük az src/style.css fájlt.
h1 {
background-color: dodgerblue;
padding: 20px;
font-family:Arial, Helvetica, sans-serif;
border-radius: 5px;
}
===== A dolgozó neve =====
A dolgozókat angolosan employee rövidítésével
fogjuk megadni: empl.
Készítsünk egy empl nevű komponenst.
ng generate component empl
A parancs hatására, létrejön egy src/app/empl nevű könyvtár.
Négy fájl generálódik.
Az Empl komponens osztály állománya a következő:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-empl',
templateUrl: './empl.component.html',
styleUrls: ['./empl.component.css']
})
export class EmplComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
A Component dekorátor függvény meghatározza az Angular metaadatait
a komponens számára. Alapértelmezetten három metaadat tulajdonság
generálódik:
* selector - CSS elem szelektora
* templateUrl - a sablon fájl elérése
* styleUrls - a privát CSS fájl elérése
Az ngOnInit() egy olyan metódus, amely a komponens létrehozása
során lefut.
A komponens osztály mindig exportálva van, így felhasználható
máshol.
Hozzunk létre az Empl komponensünk számára egy az
EmplComponent osztályban egy employee tulajdonságot.
employee = 'Penge Béla';
A dolgozó megjelenítéséhez szerkesszük a Empl komponens
sablonállományát, jelenítsük meg a dolgozót.
{{employee}}
Hogy lássuk a tartalmat, helyezzük el az alkalmazás sablonján
a komponenst. Emlékezzünk, hogy a Empl komponens szelektora
app-empl. Ennek megfelelően a következőt írjuk az
src/app/app.component.html fájlba:
{{title}}
Nézzük meg az eredményt.
===== Empl interfész =====
Egy dolgozónak több tulajdonsága is van, a nevén kívül.
Az egyszerűség kedvéért legyen most azonosító, név és
fizetés.
Készítsünk egy ilyen interfészt, az src/app könyvtárban.
export interface Empl {
id: number;
name: string;
salary: number;
}
Most menjünk az Empl komponensünk osztályához vissza,
majd importáljuk a Empl interfészt:
import { Empl } from '../empl';
Az employee tulajdonság legyen Empl típusú:
employee: Empl = {
id: 1,
name: 'Penge Béla',
salary: 3800000
};
Javítsuk az Empl komponens sablonját.
{{employee.id}}
{{employee.name}}
{{employee.salary}}
===== A dolgozó űrlap =====
Az űrlap használatához szükségünk van egy modulra.
Nyissuk meg az app.module.ts fájlt. Importáljuk a FormsModule modult.
import { FormsModule } from '@angular/forms';
Vegyük fel az imports nevű tömbbe a FormsModule modult is:
imports: [
BrowserModule,
FormsModule
],
Készítsük el az űrlapot:
===== Lista megjelenítése =====
Hozzunk létre egy új mock állományt:
import { Empl } from './empl';
export const EMPLOYEES: Empl[] = [
{ id: 1, name: 'Páros Emese', salary: 3800500 },
{ id: 2, name: 'Tornyos Péter', salary: 2800500 },
{ id: 3, name: 'Regős Ilona', salary: 3200000 },
{ id: 4, name: 'Rétes László', salary: 3100000 },
{ id: 5, name: 'Fontos Katalin', salary: 2950000 },
{ id: 6, name: 'Árva Ferenc', salary: 3300500 },
{ id: 7, name: 'Lengő Tibor', salary: 3500000 },
{ id: 8, name: 'Fejtős Aladár', salary: 3400500 },
{ id: 9, name: 'Remete Zoltán', salary: 3500500 }
];
Importáld a Empl komponensben a mock fájlt.
import { EMPLOYEES } from '../mock-employees';
Hozz létre egy új tulajdonságot, employees néven:
export class EmplComponent Implements OnInit {
employees = EMPLOYEES;
}
A *ngFor segítségével listázzuk a dolgozókat.
{{employee.id}}
{{employee.name}}
{{employee.salary}}
Az eredeti tartalom törölhető.
===== Részletek =====
A részletek megjelenítéséhez készítsünk egy
empl-detail komponenst.
ng generate component empl-detail
Írjuk mega sablont:
{{employee.name | uppercase}} részletek
Az EmplComponent osztályban vegyél fel egy új selectedEmployee
tulajdonságot és egy onSelect metódust:
export class EmplComponent implements OnInit {
employees = EMPLOYEES;
selectedEmployee!: Empl;
constructor() { }
ngOnInit(): void {
}
onSelect(employee: Empl): void {
this.selectedEmployee = employee;
}
}
Javítsuk az empl komponens sablonját:
{{employee.id}}
{{employee.name}}
{{employee.salary}}
Az empl-detail komponens osztályában importáljuk az Input modult.
Vegyük fel, a már meglévő sorba:
import { Component, OnInit, Input } from '@angular/core';
Importáljuk a Empl interfészt is:
import { Empl } from '../empl';
Az osztályon belül vegyünk fel egy tulajdonságot:
@Input() employee?: Empl;
Az EmplDetailComoponent.ts teljes tartalma:
import { Component, OnInit, Input } from '@angular/core';
import { Empl } from '../empl';
@Component({
selector: 'app-empl-detail',
templateUrl: './empl-detail.component.html',
styleUrls: ['./empl-detail.component.css']
})
export class EmplDetailComponent implements OnInit {
@Input() employee?: Empl;
constructor() { }
ngOnInit(): void {
}
}
Most bármelyik sorra, ha kattintunk, megjelenik alul a részletekben, és javíthatjuk.
===== Forrás =====
* https://angular.io/tutorial/ (2021)