Loopback.js 保存后不调用

Loopback.js after save is not called

所以我有以下代码:

loopbackModels.findModel("academy_automatic_event").find({
  where: {
    automatic_event_type: 1,
    active: true
  },
  include: {
    academy: ['versions']
  }
}).then(function(result) {
  let academyCreateArray = [];
  if (result && result.length > 0) {
    for (let i = 0; i < result.length; i++) {
      academyCreateArray.push({
        member_id: userInstance.id,
        academy_id: result[i].academy_id,
        academy_version_id: result[i].__data.academy.__data.versions[result[i].__data.academy.__data.versions.length - 1].academy_version_id
      })
    }    loopbackModels.findModel("member_has_academy").create(academyCreateArray).then(function(result) {
      next();
    }).catch(function(err) {
      console.log(err)
    })
  } else {
    next();
  }
})

现在最重要的是我在模型中创建新实例 member_has_academy

因此 .js 我有以下代码:

Memberhasacademy.afterRemote('after save', function(context, memberAcademyInstance, next) {
  loopbackModels.findModel("academy_activity").find({
    where: {
      academy_id: memberAcademyInstance.academy_id,
      academy_version_id: memberAcademyInstance.academy_version_id
    },
    order: 'sort_number ASC'
  }).then(function(result) {
    if (result != null && result.length > 0) {
      for (let i = 0; i < result.length; i++) {
        loopbackModels.findModel("member_has_academy_activity").create({
          academy_activity_id: result[i].id,
          member_id: memberAcademyInstance.member_id,
          is_complete: false,
          taken: false,
          sort_number: result[i].sort_number,
          is_open: result[i].sort_number === 1
        })
      }
    }
    next();
  });
});

但是,挂钩从未被调用。请注意,我也尝试过 after create 但结果相同。

谁能告诉我为什么会这样?

好吧,经过一番挖掘,我实际上找到了答案:

我必须使用的是:

    Memberhasacademy.observe('after save', function(ctx, next) {