我很难更新一些信息:
我有一个数组,其中每一行都是一种形式。下面是它在翡翠中的样子:
each info in infos form(method="post") input(type='hidden', name='action', value='save') td input(value='#{info.name.full}' disabled).form-control td input(value='#{info.field}' disabled).form-control td input(value='#{info.field1}' disabled).form-control td input(value='#{info.field2}' disabled).form-control td input(value='#{info.field3}' disabled).form-control td input(value='#{info.field4}' disabled).form-control td input(value='#{info.field5}' disabled).form-control td input(value='#{info.field6}' disabled).form-control td input(value='#{info.field7}' disabled).form-control td select(name='status').form-control option(value="")=(require) option(value="bla")="Bla" option(value="blabla")="Bla bla" option(value="blablabla")="Bla bla bla" option(value="blablablabla")="Bla bla bla bla" td button(type='submit').btn.btn-primary Save
我希望能够保存每一行,但单击“保存”时无法检索ID。
我的JavaScript如下所示:
view.on('post', { action: 'save' }, function (next) { var application = new Info.model(); var updater = application.getUpdateHandler(req); updater.process(req.body, { flashErrors: true }, function (err) { if (err) { locals.validationErrors = err.errors; } else { locals.updateSubmitted = true; } next(); }); });
但我想我不明白updateHandler是如何工作的。
有人知道如何通过检索ID来保存行吗?
为了解决这个问题,我补充道
input(type='hidden', name='id', value='#{info.id}')
就在之后
input(type='hidden', name='action', value='save')
然后,我可以通过以下方式访问数据:
console.log(req.body.id); console.log(req.body.item1);
我更新了我的表格:
Info.model.findByIdAndUpdate(req.body.id, { $set: {field1: req.body.item1, field2: item2}}, function(err, info) { if (err) { next(err); } });
希望这能对你们中的一些人有所帮助。