Avec Backbone, j'ai créé une vue pour un modèle. Je voudrais fournir le flux de travail suivant aux utilisateurs : a) Initialement, le contenu du modèle est simplement affiché via un modèle et il y a un bouton d'édition. b) si l'utilisateur clique sur le bouton d'édition, le contenu du modèle sera affiché dans un formulaire et peut être sauvegardé dans le modèle en cliquant sur un bouton de sauvegarde. c1) si la sauvegarde est réussie, le nouveau contenu du modèle sera rendu à nouveau par le modèle et affiché à nouveau. c2) s'il y a eu des erreurs de validation, le formulaire est mis à jour avec les erreurs.
J'ai trouvé les options suivantes sur la façon de mettre en œuvre cette solution. Mais je ne suis pas sûr des meilleures pratiques. Tout conseil est le bienvenu.
Option 1 2 sous-vues (une pour l'affichage du contenu, une pour son édition) qui sont créées dynamiquement lors du passage de l'affichage à l'édition (et abandonnées ensuite).
Option 2 2 sous-vues (une pour l'affichage du contenu, une pour l'édition) qui sont cachées/décachées par n'importe quel interrupteur (comme une bascule).
Option 3 2 sous-vues (une pour l'affichage du contenu, une pour son édition) qui sont assignées à l'élément parent sur n'importe quel commutateur.
Option 4 : 1 Vue pour gérer le contenu du modèle et 2 modèles (un pour l'affichage et un pour l'édition) qui sont rendus lors de tout passage entre l'affichage et l'édition.
D'après mon intuition, je préférerais nettement l'option 4, car elle ne nécessitera qu'une seule vue qui pourra gérer toute la logique. Mais peut-être ai-je négligé quelque chose en termes de performances, de gestion des événements, d'accès au DOM, etc. Donc, tout argument solide sur les avantages et les inconvénients des 4 options est fortement apprécié. Qu'en pensez-vous ?