Máte pravdu v krocích, které jste popsali výše, a myslím, že vše, co vám chybí, je to, že musíte do odeslané funkce zadat parametr give. Jako rekvizita v šabloně vue předáte ($event). Ve skriptu stránky (název-stránky.stránka.js) můžete mít parametr pojmenován libovolně, kde definujete odeslanou funkci.
I když to nevypadá, že to potřebujete, uvedu zde důkladný příklad pro případ, že by někdo měl potíže s funkcemi ajax-form v Sails.js.
Ve vaší šabloně(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">
Zde form-data
bude odkazovat na objekt, do kterého jsou data uložena. Klíče budou pocházet z toho, co nastavíte pro 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` určuje objekt, kam se přenesou všechny chyby back-endu, pokud akce vrátí odpověď než 200.
Ve skriptu vaší stránky (název-stránky.stránka.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);
}
}