【问题标题】:Loopback Model Remove attribute or Property before save环回模型在保存之前删除属性或属性
【发布时间】:2018-05-21 17:20:25
【问题描述】:

一段时间以来,我一直试图用这个来解决我的问题。

我想在保存之前删除模型的某个属性或属性。

到目前为止,我正在尝试使用 Loopback 的操作挂钩 before save 来捕获实例。

   MyModel.observe('before save', function(ctx, next){

      if (ctx.instance) {
         ctx.instance.removeProperty = undefined; 
      } else {
         ctx.data.removeProperty = undefined;    
      }

      next();

   });

不确定为什么上面的代码不起作用,通过将属性设置为undefined,但您可以将任何其他值设置为其他属性。

更新:上面的代码实际上是有效的。但是对于已经具有我要删除的属性的实例,我遇到了问题。

【问题讨论】:

  • 使用删除操作符从对象中删除属性..!!
  • 是的,我已经尝试过delete ctx.instance.removeProperty;。但刚刚意识到问题在于已经拥有该属性的现有实例..它不会删除它。
  • 我发现有时环回会给你某种 json 类型的函数,而不是 json 对象。调试变量时可以看到变量的保存函数。到时候你可以把它们串起来再解析一下,就可以了

标签: javascript node.js loopbackjs strongloop


【解决方案1】:

在 Loopback 版本 3 中,

如果是ctx.data

delete ctx.data['propertyToBeRemoved'];

如果是ctx.instance

ctx.instance.unsetAttribute('propertyToBeRemoved')

此语句阻止将挂钩上下文中的不需要的属性保存到数据库。

【讨论】:

  • 如何将它用于嵌套对象?例如:ctx.instance.foo.propertyToBeRemovedctx.instance.bar[0].propertyToBeRemoved
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多