将Sails生命周期挂钩函数限制为特定的属性更改

时间:2018-10-19 00:10:50

标签: javascript model sails.js lifecycle-hook

我有几个关联的模型,并且想在其他模型的特定属性(例如{{}时)用当前时间戳更新updatedAt的{​​{1}}(autoUpdatedAt)属性1}})已更改。到目前为止,我已经能够使用Sails生命周期挂钩更新时间戳,但仅在任何属性更改为其他模型的情况下。

我已经在Google上搜索了几个小时,但对它还是陌生的,所以也许我没有找到正确的关键字。谢谢你的帮助。我能找到的最接近答案是: Upon updating, how to compare a model instance with its former state

@myusuf表示要执行的操作,但没有真正执行操作,我一直坚持执行。 (我正在尝试根据@ r0hitsharma的答案进行重构,但到目前为止,这完全打破了我的生命周期陷阱。)

这是一个简化的示例:

server / api / models / ModelA.js(要更新的模型)...

modelA

server / api / models / ModelB.js(当用户modelB修改module.exports = { autoUpdatedAt: true, attributes: { id: { type: 'integer', autoIncrement: true, primaryKey: true, unique: true }, modelBs: { collection: 'modelB', via: 'modelA' } } } 时,应将其替换为当前时间)。

modelB.firstAttribute

如何将生命周期挂钩函数modelA.updatedAt限制为仅 module.exports = { attributes: { firstAttribute: { type: 'string' }, secondAttribute: { type: 'string' }, modelA: { model: 'modelA', required: true, notNull: true }, afterUpdate: handleModelUpdate, afterCreate: handleModelUpdate, afterDestroy: handleModelUpdate } function handleModelUpdate(modelA, callback) { ModelB.findOne({ tableA: tableA.id }) .then(modelA => { return ModelA.update(this.id, { updatedAt: new Date() }); }) .catch(error => callback(error)) .then(() => callback()); } 项更改,而忽略handleModelUpdate项更改?

0 个答案:

没有答案