【发布时间】:2014-12-25 04:11:53
【问题描述】:
在模型 PUT 上,我需要根据其原始值进行自定义验证。 在 beforeUpdate 模型钩子中,我可以通过 'this' 关键字访问“next”函数、“请求主体”对象(作为 beforeUpdate 参数)和更新模型本身。
有什么方法可以在不从数据库中查询的情况下获取原始模型或其更改?
甚至可以在模型挂钩中更新当前模型(因为更改“this”属性不会生效)?
【问题讨论】:
标签: loopbackjs strongloop
在模型 PUT 上,我需要根据其原始值进行自定义验证。 在 beforeUpdate 模型钩子中,我可以通过 'this' 关键字访问“next”函数、“请求主体”对象(作为 beforeUpdate 参数)和更新模型本身。
有什么方法可以在不从数据库中查询的情况下获取原始模型或其更改?
甚至可以在模型挂钩中更新当前模型(因为更改“this”属性不会生效)?
【问题讨论】:
标签: loopbackjs strongloop
免责声明:我是 LoopBack 开发人员。
有什么方法可以在不从数据库中查询的情况下获取原始模型或其更改?
不,这是不可能的。
看看loopback-datasource-juggler/lib/dao.js中updateAttributes()的代码,当你向PUT /models/:id发出请求时会调用它:
inst.setAttributes(data);
inst.isValid(function (valid) {
if (!valid) {
if (cb) {
cb(new ValidationError(inst), inst);
}
} else {
inst.trigger('save', function (saveDone) {
inst.trigger('update', function (done) {
// etc.
模型在执行任何钩子之前更新。
【讨论】: