librelist archives

« back to archive

bamboo中为模型添加回调函数的想法

bamboo中为模型添加回调函数的想法

From:
Victor Young
Date:
2011-10-20 @ 02:26
在模型操作中,有些字段比如timestamp,每次更新模型,都会重新赋值,这时,在所有修改过模型的地方,都需要更新timestamp字段,很容易出错,可以考虑添加一个postfilter来辅助,但也略显繁琐。
可以考虑为模型添加回调函数,如下为例:
local Idea = Model:extend {
__tag = 'Bamboo.Model.Idea';
__name = 'Idea';
__desc = 'Spacial Idea definition';
__fields = {
timestamp = {},
title = {},
};
__callbacks = {
updated = function(self) self:updateWithoutCallbacks('timestamp', os.time())
end,
},
init = function (self, t)
return self
end;
}
在模型的update方法中调用一次__callbacks中的updated方法,即可实现timestamp字段的自动更新