Вие сте прави в стъпките, които сте описали по-горе, и мисля, че всичко, което ви липсва е, че трябва да поставите параметър give към изпратената от вас функция. Като опора в шаблона vue, вие предавате ($event). В скрипта на страницата (page-name.page.js) можете да наименувате параметъра както искате, където дефинирате изпратената функция.
Въпреки че не изглежда, че имате нужда от това, ще дам подробен пример тук, в случай че някой друг има проблеми с функциите на ajax-form в Sails.js.
Във вашия шаблон (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">
Тук, form-data
ще се отнася до обект, който данните се съхраняват. Ключовете ще идват от това, което сте задали 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` указва обект, където ще отидат всички грешки от задния край, ако действието върне отговор, различен от 200.
В скрипта на вашата страница (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);
}
}