我如何使用Geddy Model Events?
我是geddy的新手,我对如何使用模型事件感到困惑。
我的模型有一个slug字段,我想在保存任何logging之前生成slug(基于它们input的名字)。
换句话说,我该怎么做geddy?
导轨模型:
before_save :generateSlug private: def generateSlug self.slug = self.name.parameterize end
示例模型代码:model / page.js
slugify = require('slug'); var Page = function(){ this.defineProperties({ slug: {type: 'string'}, name: {type: 'string', required: true} }); this.beforeSave = function(){ this.slug = slugify(this.name); } } exports.Page = Page;
当我运行p = geddy.model.Page.create({name: 'hello world'});
和p.save(function(e,d){ console.log(d); })
slug是未定义的
您可以使用beforeValidate
生命周期方法来执行此操作。
尝试这个:
this.beforeValidate = function () { this.slug = slugify(this.name); };
注意:在Model@0.3.2
之前,这并没有工作,对于不一致的生命周期方法有一个错误修正。