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) {
所以我有以下代码:
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) {