MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

SailsJS:Antwort der Ajax-Form von SailsJS in der übermittelten Funktion erhalten

Sie sind in den oben beschriebenen Schritten richtig, und ich denke, alles, was Sie vermissen, ist, dass Sie Ihrer übermittelten Funktion Parameter geben müssen. Als Requisite in der vue-Vorlage übergeben Sie ($event). Im Seitenskript (Seitenname.page.js) können Sie den Parameter beliebig benennen, wo Sie die übermittelte Funktion definieren.

Obwohl es nicht so aussieht, als ob Sie es brauchen, werde ich hier ein ausführliches Beispiel einfügen, falls jemand anderes Probleme mit Ajax-Formularfunktionen in Sails.js hat.

In Ihrer Vorlage (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">

Hier form-data bezieht sich auf ein Objekt, in dem die Daten gespeichert werden. Die Schlüssel kommen von dem, was Sie als 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` gibt ein Objekt an, an das alle Back-End-Fehler gehen, wenn die Aktion eine Nicht-200-Antwort zurückgibt.

In Ihrem Seitenskript (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);
    }
}