使用Loopback框架,我想在编辑Item
之前执行一些操作,因此我尝试这个但无法将其绑定到更新钩子。
Item.beforeRemote("update", function(ctx,myitem,next) {
console.log("inside update");
});
我尝试使用updateAttributes,updateById而不是更新,但是没有效果。这种beforeRemote挂钩适用于POST上的创建,但在编辑期间无法通过PUT获取它。留给我的最后一个解决方案是再次使用通配符钩子检查methodString,但我想知道是否有任何记录,我找不到。
Item.beforeRemote("**",function(ctx,instance,next){
console.log("inside update");
});
与评论相反,save
是一个远程钩子,而不是操作钩子,但你想用它作为:prototype.save
。相关的操作钩子将是before save
。你可以在LoopBack docs page上看到这些表格。我可能会将其实现为操作挂钩,并在上下文中使用isNewInstance
属性仅执行更新操作:
Item.observe('before save', function(ctx, next) {
if (ctx.isNewInstance) {
// do something with ctx.currentInstance
}
next();
});
我知道自从这篇文章被打开以来已经过了两年,但是如果任何一个团体都有相同的问题,如果你使用端点your_model/{id}
,那么afterRemote钩子就是replaceById
。如果您需要知道在远程钩子中触发了哪个方法,请使用以下代码:
yourModel.beforeRemote('**', function(ctx, unused, next) {
console.info('Method name: ', ctx.method.name);
next();
});
很抱歉碰到旧问题,但对于那些仍在搜索的人来说。
'prototype.updateAttributes'可以用作更新请求的远程钩子。和@jakerella,没有名为'save'的远程钩子,我自己尝试过,但没有工作。
来到这里寻找另一件事,猜测它会对某人有所帮助。对于远程model/:id
补丁方法之前,你必须使用“prototype.patchAttributes
”。