我有几个关联的模型,并且想在其他模型的特定属性(例如{{}时)用当前时间戳更新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
项更改?