创建hook
时,我想知道models
变量是否在函数中公开,如同在分析中一样:
...
classMethods: {
associate: function ( models ) {
users.belongsTo( models.roles, { foreignKey: 'role' } );
}
}
...
我想要做的是更新另一个模型的值,首先我必须更新当前添加购买金额的产品数量(任何提示?),因此,我需要models
变种
hooks : {
afterCreate: function ( inventory, options ) {
//What does the `options` value has?
}
}
建议的一个解决方法是简单地要求模型......
另外,我想知道afterCreate
是否适用于bulkCreate
?或者必须是afterBulkCreate
吗?
答案 0 :(得分:0)
每次创建后触发afterCreate。在创建整个集合后触发afterBulkCreate。因此,如果要创建10个项目,则在创建每个项目后,将调用afterCreate 10次。但是,只有布尔克雷特才会被召唤一次。
这似乎没有足够的文档记录,但我建议只是创建一个钩子,然后在钩子内部执行console.log(参数),看看哪些参数正在传入。但我建议只是需要像你说的模型。
答案 1 :(得分:0)
models
变量未在函数中公开。我需要更新另一个模型的值时找到的解决方案如下:
定义一个函数来获取接收模型的钩子:
var getHooks = function(models) {
return {
afterCreate: function(item, options) {
// Can access the models:
models.roles.create({...});
},
beforeCreate: function(item, options) {
// Code here
}
};
};
并在associate
方法中设置钩子函数:
classMethods: {
associate: function ( models ) {
users.belongsTo( models.roles, { foreignKey: 'role' } );
var hooks = getHooks(models);
for(var name in hooks) {
users.addHook(name, hooks[name]);
}
}
}