Page Contents

Related articles:

除了标准的Node事件, LoopBack应用和模型会emit一些其他的事件。

应用事件

默认情况下,脚手架应用在启动后并运行完启动脚本后会触发一个stared事件。

模型事件

The following table summarizes the events that LoopBack models can emit.

Event Emitted when... Arguments Argument type Class methods that emit Instance methods that emit
'attached'

Model is attached to an app.

 


Model class Object app.model(modelName)  
'changed' Model instance is created, saved, or updated.  Model instance Object
  • Model.create()

  • Model.updateOrCreate() 

  • Model.upsert() 

  • Model.prototype.save()

  • Model.prototype.updateAttributes()

'dataSourceAttached' Model is attached to a Data source. Model class Object  
  • DataSource.prototype.createModel  
  • DataSource.prototype.define
'deleted' Model instance is deleted. Model ID Number
  • Model.removeById()
  • Model.destroyById()
  • Model.deleteById()
  • Model.prototype.remove()
  • Model.prototype.delete()
  • Model.prototype.destroy()
 'deletedAll' Model instance is deleted. where (optional) JSON object
  • Model.remove()

  • Model.deleteAll()

  • Model.destroyAll()

 
'set' Model property is set. Model instance Object  

Model.prototype.setAttributes()

changed

在一个模型成功创建,保存,更新后触发。参数:inst, 是模型实例对象。例如:

MyModel.on('changed', function(inst) {
  console.log('model with id %s has been changed', inst.id);
  // => model with id 1 has been changed
});

deleted

在单个模型被删除后触发。参数:id,是模型实例的id。例如:

MyModel.on('deleted', function(id) {
  console.log('model with id %s has been deleted', id);
  // => model with id 1 has been deleted
});

deletedAll

多个模型实例被删除后触发。参数: where (可选), 是where过滤器,一个JSON对象。例如:

MyModel.on('deletedAll', function(where) {
  if (where) {
    console.log('all models where ', where, ' have been deleted');
    // => all models where
    // => {price: {gt: 100}}
    // => have been deleted
  }
});

attached

模型被attach到app之后触发。

dataSourceAttached

模型被attach到DataSource后触发。

set

模型属性被设置后触发。参数:inst, 一个模型实例。例如:

MyModel.on('set', function(inst) {
  console.log('model with id %s has been changed', inst.id);
  // => model with id 1 has been changed
});

用户模型事件

其他的事件:

PersistedModel 事件

PersistedModel有一个changed事件用来监听模型的改变。例如:

MyPersistedModel.on('changed', function(obj) {
  console.log(obj) // => the changed model
});