0
votes

Sur angulaire, est lié à Formgroup (plutôt à un «modèle réel») une mauvaise pratique?

J'ai une forme réactive d'échantillon avec la structure suivante:

- id
- firstName
- lastName
- siblings
  - id
  - firstName
  - lastName


0 commentaires

3 Réponses :


0
votes

Je pense que vous posez des questions sur la différence de liaison entre NG Modèle et Formes réactives

ng-modèle est préférable à traiter avec une liaison simple, tandis que formulaire réactif fournit une prise en charge beaucoup puissante pour manipulation telle que type (comme booléen, une chaîne, une matrice, etc.), structure (réutiliser le groupe de structure / formulaire comme Ajout d'autres personnes avec le prénom et le nom de famille), validation (auto Valider l'entrée et le formulaire), Valeur par défaut (modifications de valeur dépend de l'autre champ), désactiver etc.

En bref, forme réactive est bon pour une forme compliquée, une forme dynamique (comme la valeur de champ ou les modifications de validation dépend d'un autre champ) et de la maintenance du code.


1 commentaires

Je pose des questions sur deux stratégies différentes de formes réactives.



3
votes

Une différence de clé que je vois entre le "modèle de formulaire" et le "modèle de données" est que le "modèle de formulaire" ne contient que les données réellement sur le formulaire.

Si votre modèle de données a une propriété d'identification, l'identifiant n'apparaît probablement pas dans votre formulaire. Il ne fera donc pas partie de votre "modèle de formulaire". Idem pour potentiellement d'autres champs tels que «Dernière date de mise à jour» ou horodatages.

Plus si quelqu'un décide plus tard de grouper certains de vos champs de formulaire pour une validation supplémentaire, cela pourrait casser votre "modèle de formulaire" attendu.

Personnellement, j'utiliserais toujours le modèle de données car vous en avez plus de contrôle. Vous pouvez effectuer des opérations dessus plus facilement tels que le tri ou le filtrage. Vous pouvez plus facilement le stocker dans le stockage local pour le fonctionnement hors connexion.

plus, si l'application devient plus grande au fil du temps, vous pouvez passer à une bibliothèque de gestion d'état plus formelle, telle que NGRX qui fonctionnera avec votre "modèle de données".


0 commentaires

0
votes

J'ai pu utiliser des liaisons de groupe de formes mais conserver la logique / la structure à l'intérieur de chaque enfant. J'ai trouvé cette solution pour me donner le meilleur équilibre pour les objectifs que je cherchais.

Disclaimer: Je ne prétends pas l'originalité de cette solution, c'est le résultat de jours de recherche et de tester de nombreuses solutions sur le internet. em> p>

de sorte que le composant parent se lie à l'enfant à l'aide d'un groupe de formes: p> xxx pré>

La méthode des tisblings () dans le parent est juste Une aide simple: p> xxx pré>

La différence de clé est la manière dont les groupes de formulaires de frères et sœurs sont créés sur le parent: p> xxx pré>

additionbling ( ) ci-dessus utilise une méthode statique de la composante enfant pour créer le groupe de formes vierges: p> xxx pré>

comme on le voit ci-dessus, pas seulement des groupes de formes vierges peuvent être créés. La méthode LoadModel sur le parent peut tirer parti de chaque logique enfant pour créer des groupes de formes classés. Ici, nous n'avons qu'un seul type d'enfant, mais nous pourrions avoir beaucoup: P>

orderChildren() {
  this.currentModel.siblings = this.currentModel.siblings.sort((a, b) => a.id - b.id);
  this.loadModel(this.currentModel);
}


0 commentaires