Méthode d'appel depuis une classe Angular 2 dans un modèle
J'ai un angulaires 2 application qui a une classe appelée Utilisateur. Cet utilisateur dispose d'un attribut appelé deleted_at qui est soit null ou contient un datetime, évidemment, l'utilisateur est supprimé si la deleted_at propriété n'est pas nulle. C'est ainsi que mon utilisateur.ts fichier:
De l'utilisateur.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';
}
}
}
Maintenant je m'attend à ce que seulement je pouvais appeler nom dans mon template avec une simple ligne:
{{ user.name }}
Ceci, cependant, ne retourne rien, comment pouvez-vous appeler certaines fonctions dans l'angle de 2 modèle? Ou n'est-ce pas autorisés?
Edit: pour effacer des trucs un peu, c'est une classe d'Utilisateur que j'utilise dans mon composant liste d'utilisateurs.composante.tsplusieurs utilisateurs sont traitées dans cette partie.
source d'informationauteur hY8vVpf3tyR57Xib
Vous devez vous connecter pour publier un commentaire.
Soit vous appelez la méthode comme ceci:
Pour cette approche, vous devez être conscient que vous allez perdre le contexte d'exécution (
this
). Voir cette question pour plus de détails:Ou vous de définir votre méthode de lecture de sorte que vous pouvez utiliser
user.name
dans votre modèle:Si le modèle que vous référant à l'est de votre composant ci-dessus, vous pouvez facilement
{{ name() }}
. Dans Angulaire 2 vous n'avez pas à vous référer à votre composant d'abord pour l'appel de méthodes, comme c'était dans Angulaire 1 le cas. Dans le cas où votre classe est juste un modèle que vous avez déclaré dans votre componet, vous devez obtenir la référence à ce modèle de première et appeler la méthode{{ user.name() }}
. Toutefois, si votre méthode est juste une plaine de lecture, je voudrais juste accès à une propriété publique au lieu d'appeler une méthode.