3 votes

Ember.JS - Le bouton Submit exécute une requête et renvoie un objet JSON au modèle. Dois-je exécuter la requête dans un service, en tant que modèle ou dans une route ?

Je suis encore un novice et je suis en train de convertir une application de Node Express à Ember. Je suis confus sur certaines des méthodologies impliquées dans Ember.

Dans l'application actuelle, il y a un formulaire qui est soumis et qui exécute ensuite une requête basée sur l'entrée - en envoyant les résultats dans un nouveau modèle. Dans le fichier app.js de l'application actuelle, il y a une instruction de commutation sur POST :

app.post('/test', function(req, res){
switch(req.body.module) {
    case "Option 1":
  getOption1Results(req, res);
    break;
    case "Option2":
  getOption2Results(req, res)
  break;
    case "Option 3":
  getOptio3Results(req, res)
  break;
  case "Option 4":
  getOption4Results(req, res)
  break;
  default:
    console.log("didn't work")

}

Pour obtenir les mêmes résultats dans Ember, je ne sais pas si je dois créer un service pour faire ce qui précède ou créer une route et exécuter la requête dans un modèle qui est transmis au modèle. Ou si je dois le gérer par une action du bouton d'envoi du formulaire.

Tout conseil est le bienvenu.

0voto

feupeu Points 452

Ce que je ferais est le suivant :

  • Créer une route pour afficher le formulaire à l'utilisateur
  • Créez une action sur le formulaire, de sorte que lorsqu'il est soumis, une action est appelée. Ici, vous pouvez valider le formulaire, si vous le souhaitez.
  • Créez un service pour exécuter la requête (vous pourriez aussi utiliser un contrôleur, mais je ne les aime pas personnellement).

Pour appeler une action lors de l'envoi d'un formulaire (à la fois par l'intermédiaire du bouton d'envoi et de la touche Entrée), vous pouvez faire quelque chose comme suit :

<form {{action "onSubmitAction" on="submit"}}>
    {{input type="text" value="foobar"}}
    <button type="submit">Save</button>
</form>

Puis, dans votre contrôleur (ou composant), vous définissez ce qui suit

actions: {
    onSubmitAction() {
        // Do something
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X