【发布时间】:2015-05-22 18:25:36
【问题描述】:
很清楚如何访问新值,第一个参数包含它们
beforeUpdate: function (values, cb) {....}
但是我怎样才能访问要替换的当前值呢?
【问题讨论】:
标签: javascript node.js sails.js waterline
很清楚如何访问新值,第一个参数包含它们
beforeUpdate: function (values, cb) {....}
但是我怎样才能访问要替换的当前值呢?
【问题讨论】:
标签: javascript node.js sails.js waterline
为了访问当前值,您必须进行调用并获取当前记录。
models/user.js
beforeCreate: function (values, cb) {
User.findOne(this.update.arguments[0].id || this.update.arguments[0]).exec(err, function(originalUser){/*...*/})
}
还可以查看https://github.com/balderdashy/waterline/issues/1004#issuecomment-102432862,这里正在讨论这个问题。应该提供有关获取 ID 和当前解决方案的见解。
上述解决方案已更新以反映 cmets。
【讨论】:
values 不包含 id 属性,因为它不是更新的一部分,例如运行此 URL:@ 987654325@,values中将不存在id
id 可以使用this.update.arguments[0] 检索。谢谢!
(ex Model.update({id:X}) 将 id 直接传递到模型中,那么它将中断,因为那将是this.update.arguments[0].id。轻松计划。你可以简单地做var id = this.update.arguments[0].id || this.update.arguments[0]
this.update.arguments 在sails 0.12.11 中没有定义,所以它不起作用。它可能与异步模块有关。