我正在导出一个模型,如下所示:
var Foxx = require("org/arangodb/foxx");
var myNewModel = Foxx.extend(
{ schema:{...} },
{
beforeSave: function() {
throw new Error('reached before save');
}
});
并在控制器中使用它,如下所示:
var FoxxRepo = require("org/arangodb/foxx").Repository;
...
app.POST(function(req, resp) {
var instance = new myNewModel({...schemadata...});
var repo = new FoxxRepo(collection, { model: myNewModel });
repo.save(instance);
}
...
我可以让 beforeSave 模型事件响应存储库事件的唯一方法是在将实例传递给存储库之前通过 instance.on(...) 将函数注册到模型实例。
此讨论中有一些主题,但它们似乎是从刚刚开始添加事件注册时开始的。此处的文档有一个显示事件注册的示例,如我在此处所示。我的服务器版本是 2.7.1。
有没有办法将事件处理程序添加到定义文件中的 foxx 模型,并将处理程序包含在实例中,以便它们侦听存储库事件,或者我必须在每次创建时通过 model.on() 手动添加所有处理程序新的数据模型实例?