Je fais une application de crud simple pour faire de l'exercice et j'ai un problème avec la table de mise à jour automatiquement.
Je appelle des données d'API, ainsi que de nouvelles données sur API. Liste de tables intégrée I montrant avec ng-bootstrap, et pour ajouter un nouvel article, j'utilise la boîte modale de bootstrap. P>
dans mon et voici le code de après un Page rafraîchissante, les nouvelles données sont dans une table, mais comment l'obtenir sans rafraîchir?
Pls si quelqu'un me peut expliquer ce que je fais mal?
Thnx p> p> Service code> Voici mon code pour obtenir tous les utilisateurs et Ajouter un nouvel utilisateur p>
user.Component code> p>
3 Réponses :
Ne vous abonnez pas au service. Renvoie une méthode observable de votre aussi, n'utilisez pas updatehauser () code> (qui doit être nommé
CreateUser () code> ou
adduser () code>, BTW). Ensuite, utilisez
Switchmap () code> dans le composant pour répertorier les utilisateurs à nouveau une fois que vous savez que la création a réussi:
aucun
. / code>. Définir une interface code> utilisateur code> désaccorder la structure d'un utilisateur et l'utiliser. Et ne stockez pas
collectionsize code>, puisque vous pouvez l'obtenir simplement à partir de
allusers.length code>: c'est redondant. P> p>
Mettez à jour votre méthode de service pour revenir observable puis dans le composant Utilisateurs p> Supprimer this.Alutilisateurs = [ ]; code> de votre getUserSInlist BCS Il videra la liste et l'interface utilisateur montrera une page vierge jusqu'à ce que les données chargées p> p>
Ici, j'obtiens Propriété 'S'abonner' n'existe pas sur le type 'void' code>
@Arter BCS Il est BCS Vous n'avez pas utilisé le mot-clé de retour dans votre méthode de service.Lake sûr qu'il devrait être renvoyer cela.httpclient.post (environnement.base_url + "utilisateur / ajouter /", formdata); code> au lieu de
this.httpclient.post (environnement.base_url + "utilisateur / add /", formdata); code>
@Arter heureux ça a aidé
Une question sur ceci.Alutilisateurs = []; code> ... si je supprimais it Thei obtenez
usercompomp . Mais ma question est de ma question à propos de cela Stackoverflow.com/Questtions/58131100/...
@Arter Utilisez Alluser: iuer [] = []; code> au lieu de
Alluser: iuer []; code>
Utilisez le tuyau async code> pour obtenir le résultat de la demande à l'interface utilisateur.
<div *ngFor="let user of getUsers() | async"> ...
Lorsque vous utilisez un tuyau ASYNC, vous n'avez pas besoin de vous abonner à partir du composant. Angulaire faire ça pour vous. Donc, supprimez la logique GetUserer du composant.