使用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");
});
答案 0 :(得分:3)
与评论相反,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();
});
答案 1 :(得分:3)
我知道自该帖子被打开以来已经过去了两年,但是如果有人有相同的问题,并且如果您使用端点your_model/{id}
,则afterRemote钩子为replaceById
。
如果您需要知道在远程挂钩中触发了哪种方法,请使用以下代码:
yourModel.beforeRemote('**', function(ctx, unused, next) {
console.info('Method name: ', ctx.method.name);
next();
});
答案 2 :(得分:1)
很抱歉碰到旧问题,但对于那些仍在搜索的人来说。
'prototype.updateAttributes'可以用作更新请求的远程钩子。 和@jakerella,没有名为'save'的远程钩子,我自己尝试过,但没有用。
答案 3 :(得分:1)
来这里寻找另一件事,猜想它会对某人有帮助。
对于远程model/:id
远程修补方法,您必须使用“ prototype.patchAttributes
”。