[[oktatas:web:angular|< Angular]]
====== Angular kötések ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2021, 2022
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Kötés =====
Egy komponensnek két főbb része van. A HTML és a TypeScript
fájl a teszt és a CSS mellett. Az adatok általában a TypeScript fájlban keletkeznek, de a HTML fájlban kell megjeleníteni. Ezért a TypeScript fájlok egy-egy változóit a HTML oldal egy pontjához kell kötni.
Készítsünk egy Angular alkalmazást "kotes" néven.
Az alkalmazás gyökérkomponense a következő két fő részből áll:
* app.component.html
* app.component.ts
Szerkesszük az **src/app/app.component.html** fájlt.
Töröljük az eredeti tartalmát, majd javítsuk ehhez hasonlóan:
{{name}}
A kapcsos-zárójelekkel Teszt
//...
export class AppComponent {
name = 'János';
}
A fájl többi részét hagyjuk változatlanul. Nézzük meg a böngészőben az eredményt.
A TypeScript fájlban a "name" változót a HTML sablon
elemébe kötöttük be.
===== Formázás =====
A HTML fájlba kötött adatok formázhatók az alábbi módon.
{{ name | uppercase }} {{ name | lowercase }}
{{ dolgozo.name }} {{dolgozo.city}}
{{ dolgozok[0].name }} {{dolgozok[0].city}}
{{ dolgozok[1].name }} {{dolgozok[1].city}}
{{ dolgozo.name }} {{ dolgozo.salary }}
A mintában a pipe "|" karakter után adjuk meg, hogyan formázzuk
a változó értékét. Az uppercase hatására, minden betű
nagybetűs lesz.
A következő példában, minden betű kisbetűs lesz.
Teszt
===== Objektum példa =====
Egyetlen változó helyet objektumokat is létrehozhatunk TypeScript oldalon, aminek a tagjait beköthetjük
a HTML sablonba.
==== Egyetlen dolgozó ====
Hozzunk létre egy emplyoee objektumot, name, city és salary tagokkal:
Teszt
employee = {
name: 'Pali Márton',
city: 'Szeged',
salary: 385
}
Kössük be a HTML sablonba:
==== Több dolgozó ====
Listákat, illetve tömböket is használhatunk:
dolgozok = [
{
name: 'Pali Márton',
city: 'Szeged',
salary: 385
},
{
name: 'Rendes Katalin',
city: 'Szolnok',
salary: 324
}
]
==== Interfésszel ====
Interfészekkel típusokat határozhatunk meg. Legyen például egy Employee típus, amit
egy name és egy salary tagot tartalmaz.
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app01';
employee: Employee;
constructor() {
this.employee = {
name: "Pali Márton",
salary: 2830000
};
}
}
interface Employee {
name: string,
salary: number
}
Az AppComponent osztályban létrehoztunk egy konstruktort is, ahol definiáljuk az objektum tartalmát.
Kössük a HTML sablonba:
Az interface-t tehetjük külön állományba, de akkor exportálni kell.
===== Konstruktor nélkül =====
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app16';
janos: Emplyee = {
name: "Panda Lajos",
salary: 2850000
}
}
interface Emplyee {
name: string;
salary: number;
}
===== Interfész külön fájlban =====
export interface Employee {
name: string,
salary: number
}
import { Employee } from './employee';
//...
Az interfész tagjai zárhatók pontosvesszővel is:
export interface Employee {
name: string;
salary: number;
}
===== Függvény eredménye weblapon =====
{{valamiFuggveny()}}