Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Angularin Tietosidonnan Tyypit | Komponentit ja Mallit
Johdatus Angulariin

bookAngularin Tietosidonnan Tyypit

Kun komponentti ja sen malli ovat vuorovaikutuksessa, voit siirtää tietoja ja tapahtumia niiden välillä eri tavoilla. Tätä kutsutaan tietosidonnaksi.

Angularissa on neljä erilaista tietosidonnan tyyppiä, joista jokaisella on oma käyttötarkoituksensa.

Tarkastellaan, miten nämä toimivat yksinkertaisen tehtäväkomponentin avulla:

task-component.ts

task-component.ts

copy

Tässä luodaan task-olio, jolla on kolme ominaisuutta: id, title ja completed. Nämä ominaisuudet kuvaavat tiettyä tehtävää—sen nimeä ja sitä, onko se suoritettu.

Interpolointi

Esimerkiksi, jos sinulla on muuttuja kuten task.title, voit ympäröidä sen {{ }}-merkinnällä, jolloin Angular renderöi sen arvon HTML:ään.

task-component.html

task-component.html

copy

Kun Angular käsittelee mallia, se löytää lausekkeen {{ task.title }} ja korvaa sen komponentin nykyisellä arvolla task.title.

Jos arvo on 'Buy groceries', juuri tämä teksti näkyy <h3>-tagin sisällä. Sama prosessi koskee kaikkia muita arvoja, joita interpoloit.

Interpolointi on siis yksisuuntaista: data kulkee komponentista malliin, ja käyttäjä näkee vain lopputuloksen.

Ominaisuussidonta

Aina ei riitä pelkkä tekstin näyttäminen — joskus haluat ohjata elementin toimintaa, kuten poistaa painikkeen käytöstä, asettaa kuvan lähteen tai valita valintaruudun.

Angular mahdollistaa arvojen sitomisen HTML-elementtien ominaisuuksiin hakasulkeiden avulla.

task-component.html

task-component.html

copy

Kuvittele, että tehtävä on jo suoritettu (task.completed = true). Tässä tapauksessa haluamme, että painike on pois käytöstä. Kun Angular näkee [disabled]="task.completed", se ottaa arvon komponentista ja sitoo sen DOM-elementin disabled-ominaisuuteen.

Jos arvo on true, painike poistuu käytöstä. Jos arvo on false, painike pysyy aktiivisena.

Tämä on jälleen yksisuuntainen sitominen: data kulkee komponentista pohjaan, ja pohja mukautuu task-olion nykytilan mukaan.

Tapahtumasidonta

Jotta sovelluksesi voi reagoida käyttäjän toimintoihin (kuten klikkauksiin), Angular tarjoaa tapahtumasidonnan. Kun käyttäjä on vuorovaikutuksessa elementin kanssa, voit "napata" tapahtuman ja kutsua komponentissa olevaa metodia.

Lisätään metodi komponenttiin:

task-component.ts

task-component.ts

copy

Ja päivitä malli:

task-component.html

task-component.html

copy

Kun käyttäjä napsauttaa painiketta, Angular tunnistaa (click)-tapahtuman ja kutsuu komponentissa olevaa toggleComplete()-metodia. Tämä metodi vaihtaa task.completed-arvon. Tämän jälkeen Angular renderöi mallin uudelleen, ja interpoloinnin ({{ task.completed ? 'Undo' : 'Complete' }}) ansiosta painikkeen teksti päivittyy välittömästi.

Tässä tiedonsiirto kulkee yhteen suuntaan — mallista takaisin komponenttiin (toiminto välitetään sisäänpäin).

Kaksisuuntainen sitominen

Joskus halutaan, että muutokset mallissa (kuten syöttökenttään kirjoittaminen) päivittävät komponentin välittömästi — ja muutokset komponentissa päivittävät mallin välittömästi. Angular tekee tämän helpoksi kaksisuuntaisella sitomisella käyttäen [(ngModel)]-syntaksia.

Tärkeää: Käyttääksesi [(ngModel)], sinun täytyy tuoda FormsModule — kuten alla on esitetty:

task-component.ts

task-component.ts

copy

Tässä on mallipohja:

task-component.html

task-component.html

copy

Tässä tapahtuu kaksisuuntaisen sidonnan taika. Kun käyttäjä kirjoittaa syötekenttään, Angular päivittää automaattisesti task.title -arvon komponentissa. Ja kun task.title muuttuu komponentissa, Angular heijastaa muutoksen välittömästi syötekenttään.

Toisin kuin muissa sidontatyypeissä, kaksisuuntainen sidonta pitää komponentin ja mallin jatkuvasti synkronoituna.

Keskeiset erot

Jokaisella näistä sidontamenetelmistä on omat ominaisuutensa, ja ne soveltuvat parhaiten erilaisiin tiedonvälitystilanteisiin sovelluksessa.

1. Mitä tietosidontatyyppiä käytetään komponentin muuttujan arvon näyttämiseen mallissa?

2. Mikä tietosidontatyyppi mahdollistaa komponentin muuttujan päivittämisen lomakkeen kautta ja pitää sen synkronoituna mallin syötekentän kanssa?

3. Mitä tietosidontatyyppiä käyttäisit, jotta painike olisi pois käytöstä, kun tehtävä on suoritettu?

4. Mikä tietosidontatyyppi mahdollistaa komponentin metodin käynnistämisen, kun painiketta klikataan?

question mark

Mitä tietosidontatyyppiä käytetään komponentin muuttujan arvon näyttämiseen mallissa?

Select the correct answer

question mark

Mikä tietosidontatyyppi mahdollistaa komponentin muuttujan päivittämisen lomakkeen kautta ja pitää sen synkronoituna mallin syötekentän kanssa?

Select the correct answer

question mark

Mitä tietosidontatyyppiä käyttäisit, jotta painike olisi pois käytöstä, kun tehtävä on suoritettu?

Select the correct answer

question mark

Mikä tietosidontatyyppi mahdollistaa komponentin metodin käynnistämisen, kun painiketta klikataan?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the differences between one-way and two-way data binding in Angular?

How do I decide which type of data binding to use in a specific scenario?

Can you give more examples of when to use each binding type?

Awesome!

Completion rate improved to 3.13

bookAngularin Tietosidonnan Tyypit

Pyyhkäise näyttääksesi valikon

Kun komponentti ja sen malli ovat vuorovaikutuksessa, voit siirtää tietoja ja tapahtumia niiden välillä eri tavoilla. Tätä kutsutaan tietosidonnaksi.

Angularissa on neljä erilaista tietosidonnan tyyppiä, joista jokaisella on oma käyttötarkoituksensa.

Tarkastellaan, miten nämä toimivat yksinkertaisen tehtäväkomponentin avulla:

task-component.ts

task-component.ts

copy

Tässä luodaan task-olio, jolla on kolme ominaisuutta: id, title ja completed. Nämä ominaisuudet kuvaavat tiettyä tehtävää—sen nimeä ja sitä, onko se suoritettu.

Interpolointi

Esimerkiksi, jos sinulla on muuttuja kuten task.title, voit ympäröidä sen {{ }}-merkinnällä, jolloin Angular renderöi sen arvon HTML:ään.

task-component.html

task-component.html

copy

Kun Angular käsittelee mallia, se löytää lausekkeen {{ task.title }} ja korvaa sen komponentin nykyisellä arvolla task.title.

Jos arvo on 'Buy groceries', juuri tämä teksti näkyy <h3>-tagin sisällä. Sama prosessi koskee kaikkia muita arvoja, joita interpoloit.

Interpolointi on siis yksisuuntaista: data kulkee komponentista malliin, ja käyttäjä näkee vain lopputuloksen.

Ominaisuussidonta

Aina ei riitä pelkkä tekstin näyttäminen — joskus haluat ohjata elementin toimintaa, kuten poistaa painikkeen käytöstä, asettaa kuvan lähteen tai valita valintaruudun.

Angular mahdollistaa arvojen sitomisen HTML-elementtien ominaisuuksiin hakasulkeiden avulla.

task-component.html

task-component.html

copy

Kuvittele, että tehtävä on jo suoritettu (task.completed = true). Tässä tapauksessa haluamme, että painike on pois käytöstä. Kun Angular näkee [disabled]="task.completed", se ottaa arvon komponentista ja sitoo sen DOM-elementin disabled-ominaisuuteen.

Jos arvo on true, painike poistuu käytöstä. Jos arvo on false, painike pysyy aktiivisena.

Tämä on jälleen yksisuuntainen sitominen: data kulkee komponentista pohjaan, ja pohja mukautuu task-olion nykytilan mukaan.

Tapahtumasidonta

Jotta sovelluksesi voi reagoida käyttäjän toimintoihin (kuten klikkauksiin), Angular tarjoaa tapahtumasidonnan. Kun käyttäjä on vuorovaikutuksessa elementin kanssa, voit "napata" tapahtuman ja kutsua komponentissa olevaa metodia.

Lisätään metodi komponenttiin:

task-component.ts

task-component.ts

copy

Ja päivitä malli:

task-component.html

task-component.html

copy

Kun käyttäjä napsauttaa painiketta, Angular tunnistaa (click)-tapahtuman ja kutsuu komponentissa olevaa toggleComplete()-metodia. Tämä metodi vaihtaa task.completed-arvon. Tämän jälkeen Angular renderöi mallin uudelleen, ja interpoloinnin ({{ task.completed ? 'Undo' : 'Complete' }}) ansiosta painikkeen teksti päivittyy välittömästi.

Tässä tiedonsiirto kulkee yhteen suuntaan — mallista takaisin komponenttiin (toiminto välitetään sisäänpäin).

Kaksisuuntainen sitominen

Joskus halutaan, että muutokset mallissa (kuten syöttökenttään kirjoittaminen) päivittävät komponentin välittömästi — ja muutokset komponentissa päivittävät mallin välittömästi. Angular tekee tämän helpoksi kaksisuuntaisella sitomisella käyttäen [(ngModel)]-syntaksia.

Tärkeää: Käyttääksesi [(ngModel)], sinun täytyy tuoda FormsModule — kuten alla on esitetty:

task-component.ts

task-component.ts

copy

Tässä on mallipohja:

task-component.html

task-component.html

copy

Tässä tapahtuu kaksisuuntaisen sidonnan taika. Kun käyttäjä kirjoittaa syötekenttään, Angular päivittää automaattisesti task.title -arvon komponentissa. Ja kun task.title muuttuu komponentissa, Angular heijastaa muutoksen välittömästi syötekenttään.

Toisin kuin muissa sidontatyypeissä, kaksisuuntainen sidonta pitää komponentin ja mallin jatkuvasti synkronoituna.

Keskeiset erot

Jokaisella näistä sidontamenetelmistä on omat ominaisuutensa, ja ne soveltuvat parhaiten erilaisiin tiedonvälitystilanteisiin sovelluksessa.

1. Mitä tietosidontatyyppiä käytetään komponentin muuttujan arvon näyttämiseen mallissa?

2. Mikä tietosidontatyyppi mahdollistaa komponentin muuttujan päivittämisen lomakkeen kautta ja pitää sen synkronoituna mallin syötekentän kanssa?

3. Mitä tietosidontatyyppiä käyttäisit, jotta painike olisi pois käytöstä, kun tehtävä on suoritettu?

4. Mikä tietosidontatyyppi mahdollistaa komponentin metodin käynnistämisen, kun painiketta klikataan?

question mark

Mitä tietosidontatyyppiä käytetään komponentin muuttujan arvon näyttämiseen mallissa?

Select the correct answer

question mark

Mikä tietosidontatyyppi mahdollistaa komponentin muuttujan päivittämisen lomakkeen kautta ja pitää sen synkronoituna mallin syötekentän kanssa?

Select the correct answer

question mark

Mitä tietosidontatyyppiä käyttäisit, jotta painike olisi pois käytöstä, kun tehtävä on suoritettu?

Select the correct answer

question mark

Mikä tietosidontatyyppi mahdollistaa komponentin metodin käynnistämisen, kun painiketta klikataan?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
some-alt