0
votes

Erreur angulaire "Impossible de lire la propriété" Prénom "de non défini"

Salut je travaille sur un service de recherche pour rechercher des noms d'utilisateur dans une base de données Elasticssearch, mais j'ai eu l'erreur suivante lorsque je souhaite afficher le F.e. Prénom de l'utilisateur: impossible de lire la propriété 'FirstName' de non défini.

Je travaille avec angular et elasticsearch p>

Service: P>

export interface User {
  $oid: string;
  firstName: string;
  lastName: string;
  username: string;
  password: string;
  follows: User[];
}


0 commentaires

3 Réponses :


1
votes

Je suppose getObject () est appelé lorsque vous chargez le formulaire, l'utilisateur est indéfini afin que vous obteniez cette erreur. Pourquoi n'utilisez-vous pas simplement utilisateur? .FirstName puisque vous avez déjà la variable définie?

  <p>{{user?.firstName}}</p>


1 commentaires

Merci pour votre réponse, j'ai changé tout ce que vous avez suggéré, il n'y a plus d'erreur, mais l'utilisateur

{{{{{{{{{{{{{{{{}} ne s'affiche pas: /



0
votes

1.SearchServicecomomEcomponce doit mettre en œuvre une classe sur la classe et mettre en œuvre sa méthode Ngoninit 2. Appeler les deux méthodes à l'intérieur de la méthode Ngoninit séquentiellement 3. Vérifiez si ceci.User n'est pas égal à NULL ou non défini et manipulez-le à l'aide de la condition NGIF Répondu par Sajitharan

exemple pour Oninit Ts xxx


20 commentaires

Merci pour la réponse, j'ai changé le composant et le formulaire HTML. J'ai édité mon message avec le nouveau code. Je n'obtiens plus l'erreur, mais il n'y a pas de sortie non plus. le

{{utilisateur? .FirstName}} ne s'affiche pas


Vous n'avez pas appelé GetUtuser et GetObject à l'intérieur de Ngoninit. S'il vous plaît essayez-le et laissez-moi savoir


Je les ai appelés mais j'ai oublié de poster le nouveau code ^^ et oui la même chose, sans montrer dans le


Pouvez-vous s'il vous plaît console.log in ci-dessous ligne this.searchService.getelasticResult (nom d'utilisateur) .Subscribe (utilisateur => (this.user = utilisateur)); Comme ceci.SearchService.getelasticResult (nom d'utilisateur) .Subscribe (User => {console.log (utilisateur); console.log (this.user);})


Ok, je l'ai fait et la console imprime toutes les données utilisateur de la base de données Elasticssearch, mais toujours rien sur l'utilisateur

?FirstName


J'ai ajouté une capture d'écran de la console dans mon post


Veuillez vérifier la réponse mise à jour pour la modification du service


Merci pour la réponse, mais il marque le premier "coup" comme une erreur "Hits '" Hits "n'existe pas sur le type" utilisateur ""


J'ai ajouté l'interface "utilisateur" dans mon post


Les deux sont des "hits" et il n'y a pas de propriété avec le nom "Hit". Pouvez-vous s'il vous plaît vérifier la mise en œuvre une fois.


désolé je voulais dire des hits, j'ai copié votre code directement donc il ne devrait y avoir aucune erreur de mise en œuvre


Je ne suis pas capable de le reproduire sur ma machine. Seriez-vous capable de créer le problème sur Stackblitz?


Je peux vous offrir le lien GITHUB: GITUB.COM/MASTALIER1997/PRDKE


Je suis dessus. laisse-moi un peu de temps s'il te plait.


Je ne reçois aucun résultat pour chercher vide ou "E". Pouvez-vous vérifier les résultats une fois ou remplir certaines données. S'il vous plaît laissez-moi savoir une fois que vous entrez des données dans la base de données


Ah désolé ouais, il y a des utilisateurs déjà dans la base de données. Vous ne recevriez une réponse que si vous écrivez le nom d'utilisateur dans. Exemples: "Trump" ou "Elon" (juste pour 4 noms haha)


S'il vous plaît ajoutez-moi au collaborateur GitHub. Mon nom d'utilisateur est Prasadmahadik. Il y a beaucoup de changements que j'ai faits au code. S'il vous plaît laissez-moi savoir une fois que vous m'avez ajouté au repo


Je suis désolé de ne pas pouvoir faire cela parce que c'est un projet universitaire et mon professeur va vérifier cela plus tard. Est-il possible de poster le code ailleurs?


Je peux vous envoyer un zip avec la réponse. Pouvez-vous s'il vous plaît me donner une autre chose où je peux partager avec vous


pouvez-vous m'envoyer le fichier zip par e-mail?



0
votes

Dans votre HTML, vous devez faire quelque chose comme celui-ci

usersFirstName : string;
getUser() {
    const userName = this.angForm2.value.searchText;
    console.log(this.angForm2.value, userName);
    this.searchservice.getElasticResult(userName).subscribe(user => (this.user = user)
this.usersFirstName = user.name;
);
  }


1 commentaires

Merci pour votre réponse, je l'ai fait mais toujours vide