diff options
Diffstat (limited to 'acf/model/field.lua')
-rw-r--r-- | acf/model/field.lua | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/acf/model/field.lua b/acf/model/field.lua index 459bb92..ad26818 100644 --- a/acf/model/field.lua +++ b/acf/model/field.lua @@ -108,6 +108,13 @@ end TreeNode = class(Field) +function TreeNode:load(context, create) + if not ( + create or self.create or context.txn:get(context.addr, 'table') + ) then return end + return self.itype(context, self.iparams) +end + function TreeNode:save(context, value) local path = context.path @@ -147,12 +154,10 @@ Model = class(TreeNode) function Model:init(params) super(self, Model):init(params) + assert(self.model) + self.itype = self.model + self.dtype = 'model' self.widget = self.dtype end - -function Model:load(context, create) - if not (create or context.txn:get(context.addr, 'table')) then return end - return self.model(context) -end |