0
votes

Problème de liaison à 2 voies angulaire lors de l'utilisation d'un service

Je tente de simplement faire une simple liaison à 2 voies dans mon application angulaire 7 {{valeur}} . Cela fonctionne dans presque toutes les taches de mon application, car je m'attends à ce que cela soit, mais à cet endroit, il ne met pas à jour lorsque les rendements observables. J'ai manqué évidemment quelque chose dans la composante actuelle que je travaille. S'il vous plaît laissez-moi savoir si vous voyez une erreur dans l'exemple de code ci-dessous:

Tapez le fichier de composant de script xxx

fichier de modèle xxx

Je suis sûr que je suis juste plat sur quelque chose d'incroyablement simple, mais ne peut pas comprendre ce que c'est.


7 commentaires

Êtes-vous en mesure d'obtenir des données?


Si vous console.log out Data , dans votre fonction getObjects () , avez-vous des données?


Avez-vous laissé tomber un console.log (données) dans votre getObjects () méthode pour voir si vous obtenez une valeur du tout. Si vous obtenez une valeur là-bas, le problème figure dans votre composant ou votre modèle, si vous n'obtenez pas de valeur, le problème est probablement dans votre service.


Vous n'obtenez probablement pas à recevoir des données de votre service et que vous essayez de convertir en JSON, c'est ce que le problème semble être


Je suis capable d'obtenir des données en arrière lors de la fabrication d'une console.log (données) et d'une console.log (this.Objects) dans le rappel de l'abonnement, mais aucune donnée n'est affichée dans les étiquettes PRE du modèle. Le modèle entier est ce qui est ci-dessus, mais c'est un composant enfant d'un autre composant.


J'ai également tenté d'utiliser Ngzone comme je l'ai vu suggéré sur d'autres sites (je l'ai utilisé avec Signalr dans d'autres domaines), mais cela n'a pas fonctionné non plus. Cela me confond encore plus, comme si le problème était simplement que la détection de changement ne prenait pas le changement, cela résoudrait ce problème.


Si j'ajoute un bouton à l'écran et appelle simplement console.log (this.Objects) Il met ensuite à jour l'écran.


3 Réponses :


0
votes

Vous avez un module commun importé dans votre Appmodule ou le module dans lequel vous utilisez ce tuyau?


1 commentaires

Je suis désolé, mais je ne comprends pas cette réponse.



0
votes

Essayez de ne pas initialiser la variable de vos objets, déclarez simplement déclarer. Lorsque vous utilisez héritage, j'ai vu des cas étranges lorsque cela initialise des variables après des incendies d'abonnement.

objects: Array<ObjectModel>;


1 commentaires

Merci pour la réponse, j'ai donné cela un essai et malheureusement cela ne l'a pas trouvé. Je suis sûr que j'ai une petite chose semblable à ce mauvais endroit quelque part. Merci encore.



0
votes

Vérifiez cette Stackblitz qui a votre code et certaines des suggestions ci-dessous. Le Objectervice renvoie un observable contenant une maquette d'objets et fonctionne bien avec votre code de composant.

Je ne pense pas que vous en avez assez dans votre question pour permettre une réponse spécifique, voici quelques étapes de résolution de problèmes que je prendrais:

  • mettre un * ngif = "objets" sur votre pré élément
  • Essayez d'attribuer l'observable renvoyé de getallObjects () à la variable de la variable du composant et de la déroulement dans le modèle à l'aide du tuyau ASYNC: {{( Objets | ASYNC) | JSON}}
  • Vérifiez la structure dans la Stackblitz contre votre code et mettez à jour votre réponse avec toutes les différences entre votre code et la Stackblitz (je vous suggère de fourchette The Stackblitz que j'ai créé et ajoute ceci à votre question)

    En regardant mon stackblitz pourrait aider, même si cela est similaire à votre code, cela pourrait vous donner une nouvelle façon de penser à ce sujet.


0 commentaires