我想从一个由ajax表单组件调用的动作中获取一个对象。
重现步骤。
-
创建一个 ajax 表单,您可以在其中传递模型的值(例如帖子的标题和描述(
-
处理提交表单后,将数据传递给操作
-
在该操作中,您将保护给定的数据到MongoDB并使用.fetch((获取创建的数据
-
将获取的数据传递给
exits.success(fetchedData)
-
尝试在 xxxx.page 的 submittedForm 函数中获取数据.js
我无法获取数据。我记录了ajax-form.components.js。在第 398 行中,我们发出结果(结果应该有我们的数据,在我的例子中是事实(,但在那之后,结果就消失了。 也许我理解错了,显然我做错了事情。
如果您需要更多信息,请告诉我。
您在上面描述的步骤中是正确的,我认为您缺少的只是您必须将 give 参数放入您提交的函数中。作为 vue 模板中的道具,您传入 ($event(。在页面脚本(page-name.page.js(中,您可以在定义提交函数的位置将参数命名为您想要的任何名称。
虽然你似乎不需要它,但我要在这里放一个彻底的例子,以防其他人在 Sails.js 中使用 ajax 形式的函数时遇到问题。
在您的模板(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.
表单规则is 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.
表单错误specifies 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);
}
}