0
votes

Pousser un objet en angulaire

J'essaie de pousser des objets à afficher dans des matches en angular.so Chaque entrée est une carte qui contient les trois champs. Ce que j'ai jusqu'à présent, cela ne fonctionne pas: je reçois une erreur qui dit ceci.inputfield.push n'est pas une fonction sur postsComponent.getinput code>

mon HTML: P>

export interface InputField{
 name: string,
 department: string, 
 message: string
}


9 commentaires

Donc, ma réponse à votre dernière question vous a aidé alors? Stackoverflow.com/a/60354552/5367916


Oui, cela va probablement mais je dois déclarer mon objet avant que je puisse le tester. Merci!


Pouvez-vous publier tout le code de fichier TS.


J'ai édité mon code


Pouvez-vous créer un Stackblitz pour reproduire le problème? (A l'air bien au premier coup d'œil) aussi, sont this.départment et this.message défini dans le fichier .TS?


Ok ... je les ai définis dans le composant séparé post.TS qui est une interface que j'ai importée dans le composant.


Cela ne devrait pas être un problème. Ne pouvait pas reproduire le problème que vous faites face; Par conséquent, demandé pour un Stackblitz.


Stackblitz se révèle être une douleur, une minute, je ne peux pas importer SRC le prochain il me dit que mon chemin ne fonctionne pas.


Il suffit d'ajouter la solution avec la description et le code complet, s'il vous plaît laissez-moi savoir si des questions.


3 Réponses :


0
votes

Essayez d'initialiser votre variable dans le constructeur. xxx


3 commentaires

En raison de l'objet que vous souhaitez insérer dans le tableau. {'Nom': this.nom, "département": this.départment, "message": this.message} "this" mot-clé est votre composant ici et ne peux pas trouver une variable avec le département et le nom et le message


mais il prend une entrée de mon HTML


Ok maintenant j'ai vu. Il y a mal compris la liaison de forme. Le champ de saisie est un tableau mais vous souhaitez l'utiliser à la fois votre modèle de formulaire et autre chose. Créer une autre variable pour le modèle de formulaire



0
votes

Vous liez les propriétés Inputfield tels que INPUTFIELD.NAME, INPUTFIELD.DÉPARTEMENT, Mais dans la déclaration, vous dites que c'est un tableau. Et puis vous l'initialisez à un tableau vide.

Vous devez avoir 2 propriétés: p> xxx pré>

pour les données actuelles que vous modifiez. P>

et ensuite Vous pouvez appuyer sur l'entrée de l'entrée actuellement modifiée vers le tableau Inputfielitures. P>

this.inputFields.push(this.inputField);


0 commentaires

1
votes

J'ai vérifié votre code et j'ai découvert qu'il y a quelques erreurs. Veuillez trouver le code complet ici, j'ai créé une StackBlitz de travail ici - https://stackblitz.com/edit / angulaire-gw5rrv

Juste pour votre croissance, je répète des erreurs ici:

  • Vous utilisez Inputfield avec NGModel d'entrées incorrectes. Comme nous souhaitons stocker des valeurs dans le tableau INPUTFIELD , nous avons besoin d'une autre variable pour la liaison avec NGModel ( FieldData Est-ce que j'ai créé).
  • Vous devez utiliser la variable d'entrée de modèle ( entrée dans votre cas) à l'intérieur * NGFOR, mais vous utilisez Inputfield.
    • J'ai également supprimé le code inutile
    • J'ai utilisé div au lieu de la carte de match pour la simplicité

      S'il vous plaît laissez-moi savoir si des questions.


2 commentaires

Merci! Cela a vraiment aidé. Je me demande bien que nous devons appeler l'objet alors un tableau? FieldData: Inputfield = {Nom: "", Département: "", message: ""}; Ne pouvons-nous pas appuyer sur l'objet? Ou nous définissons le tableau pour la suppression?


J'ai créé un objet avec les mêmes noms de propriétés que nécessaire par le tableau pour la correspondance de type. Et deuxième, nous faisons deux choses ici: 1. Nous voulons lier un objet avec des champs de saisie, donc j'ai créé un objet pour la liaison. Maintenant, chaque fois que des valeurs dans les champs de saisie changent, mon objet (FieldData) est mis à jour elle-même. 2. Nous devons stocker ces objets dans un tableau afin de créer un tableau séparé.