MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

SailsJS :obtenir la réponse de la forme Ajax de SailsJS dans la fonction soumise

Vous avez raison dans les étapes que vous avez décrites ci-dessus, et je pense que tout ce qui vous manque, c'est que vous devez mettre le paramètre give à votre fonction soumise. En tant que prop dans le modèle vue, vous transmettez ($event). Dans le script de page (page-name.page.js), vous pouvez faire en sorte que le paramètre soit nommé comme vous le souhaitez où vous définissez la fonction soumise.

Bien qu'il ne semble pas que vous en ayez besoin, je vais mettre un exemple détaillé ici au cas où quelqu'un d'autre aurait des problèmes avec les fonctions de formulaire ajax dans Sails.js.

Dans votre modèle (html):

<ajax-form
    action="<camelcase of the file for your action>" 
    :handle-parsing="parseForm"
    :submitted="submittedForm($event)"
    @rejected="rejectedForm($event)"
    :form-data="formData"
    :form-rules="formRules"
    :form-errors.sync="formErrors"
    :cloud-error.sync="cloudError"
>
<input type="text" id="input1" v-model="input1">

Ici, form-data fera référence à un objet que les données sont stockées. Les clés proviendront de ce que vous définissez le v-model' as for a given input. form-rulesis where you specify an object of objects. They key of each is the input name from v-modeland the value can be a string or array of strings for the rules set. form-errorsspecifies an object where errors will go if the form triggers any errors upon submission. If this happens, data does not get sent to the server and neither the submitted or rejected function get run. cloud-error.sync` spécifie un objet où toutes les erreurs de back-end iront si l'action renvoie une réponse non-200.

Dans le script de votre page (page-name.page.js) :

data: {
    formData: {},
    formErrors: {},
    formRules: {
        input1: 'required'
    },
    cloudError: ''
},
methods: {
    parseForm: function () {
        // You can do parsing and custom validations here, but return all data 
        // you want to send to the server as an object called 'argins'
        return argins;
    },
    submittedForm (data) {
        // Here you can use any data that is returned from the action, like
        console.log('returned data: ', data);
    },
    rejectedForm (err) {
        // This function runs if the server returns a non-200 response
        console.log(err);
    }
}