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[]; }
3 Réponses :
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>
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
{{{{{{{{{{{{{{{{}} p> ne s'affiche pas: /
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 p>
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 P>
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?
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; ); }
Merci pour votre réponse, je l'ai fait mais toujours vide