/ Metóda volania z vnútornej šablóny triedy Angular 2 - uhlová, angular2-template

Metóda volania z vnútri šablóny Angular 2 - angular, angular2-template

Mám uhlovú aplikáciu 2, ktorá má triedus názvom Používateľ. Tento používateľ má atribút s názvom deleted_at, ktorý je buď null alebo obsahuje datetime, samozrejme, že používateľ je odstránený, ak vlastnosť deleted_at nie je null. Takto vyzerá môj súbor user.ts:

User.ts

export class User {
id: number;
email: string;
created_at: string;
first_name: string;
last_name: string;
deleted_at: any;

name() {
if (this.deleted_at === null) {
return this.first_name;
} else {
return "DELETED";
}
}
}

Teraz som čakal, že vo svojej šablóne môžem jednoducho zavolať jednoduchým riadkom:

{{ user.name }}

To však nevracia nič, ako môžete volať určité funkcie v šablóne uhlového 2? Alebo to nie je povolené?

edit: aby som to trochu vyčistil, je to užívateľ triedy, ktorý používam vo svojej súčasti user-list.component.ts, v tomto komponente je spracovaných viacero používateľov.

odpovede:

12 pre odpoveď č. 1

Buď zavoláte metódu takto:

{{user.name()}} // instead of {{user.name}}

Pre tento prístup si musíte byť vedomí, že prídete o kontext vykonávania (this). Viac informácií nájdete v tejto otázke:

Alebo definujte svoju metódu ako getra, aby ste ju mohli použiť user.name vo vašej šablóne:

get name() {
if (this.deleted_at === null) {
return this.first_name;
} else {
return "DELETED";
}
}

0 pre odpoveď č. 2

Ak šablóna, na ktorú odkazujete, pochádza z vyššie uvedeného komponentu, môžete to urobiť jednoducho {{ name() }}, V Angular 2 nemusíte odkazovať na svojeKomponent najprv zavolal metódy, ako tomu bolo v prípade Angular 1. V prípade, že je vaša trieda iba modelom, ktorý ste uviedli vo svojej komponente, musíte najskôr získať odkaz na tento model a potom zavolať metódu {{ user.name() }}, Ak je však vaša metóda iba jednoduchým prístupom, namiesto prístupu k tejto metóde by som navštívil iba verejné vlastníctvo.