环回 ctx.instance 与 ctx.data
Loopback ctx.instance vs ctx.data
我无法理解两者之间的区别
Ctx.instance
和 Ctx.data
在环回 'before save ' 回调中。
差异在我们的文档中有所描述,请参阅 Operation hooks >> before save。在这里交叉发布相关内容:
Depending on which method triggered this hook, the context will have one of the following sets of properties:
Full save of a single model
- (...)
instance
- the model instance to be saved. The value is an instance of Model class.
Partial update of possibly multiple models
- (...)
data
- the (partial) data to apply during the update
currentInstance
- the affected instance.
当您调用 Customer.create({/*...*/})
时,将调用挂钩 ctx.instance
设置为您模型的实例,所有属性均从传递给 create()
的对象填充:
{
name: 'Miroslav',
isPreferred: false,
// etc.
}
当您调用 customer.patchAttributes({isPreferred: true})
时,将使用 ctx.data
调用挂钩,其中仅包含提供给 patchAttributes()
的属性。
{
isPreferred: true
}
您可以在源代码中了解更多信息,请参阅loopback-datasource-juggler/lib/dao.js
。
我无法理解两者之间的区别
Ctx.instance
和 Ctx.data
在环回 'before save ' 回调中。
差异在我们的文档中有所描述,请参阅 Operation hooks >> before save。在这里交叉发布相关内容:
Depending on which method triggered this hook, the context will have one of the following sets of properties:
Full save of a single model
- (...)
instance
- the model instance to be saved. The value is an instance of Model class.Partial update of possibly multiple models
- (...)
data
- the (partial) data to apply during the updatecurrentInstance
- the affected instance.
当您调用 Customer.create({/*...*/})
时,将调用挂钩 ctx.instance
设置为您模型的实例,所有属性均从传递给 create()
的对象填充:
{
name: 'Miroslav',
isPreferred: false,
// etc.
}
当您调用 customer.patchAttributes({isPreferred: true})
时,将使用 ctx.data
调用挂钩,其中仅包含提供给 patchAttributes()
的属性。
{
isPreferred: true
}
您可以在源代码中了解更多信息,请参阅loopback-datasource-juggler/lib/dao.js
。