summaryrefslogtreecommitdiffstats
path: root/acf/model/field.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf/model/field.lua')
-rw-r--r--acf/model/field.lua15
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