diff options
-rw-r--r-- | acf2/model/node.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/acf2/model/node.lua b/acf2/model/node.lua index 85fc416..ff187b8 100644 --- a/acf2/model/node.lua +++ b/acf2/model/node.lua @@ -25,6 +25,9 @@ function M.BoundMember:init(parent, name, field) function mt.__index(t, k) local member = field[k] if type(member) ~= 'function' then return member end + + local addr = field.addr or pth.escape(name) + if type(addr) == 'function' then addr = addr(pmt.addr) end return function(self, ...) return member( field, @@ -32,9 +35,7 @@ function M.BoundMember:init(parent, name, field) txn=pmt.txn, parent=parent, path=pth.join(pmt.path, name), - addr=pth.to_absolute( - field.addr or pth.escape(name), pmt.addr - ) + addr=pth.to_absolute(addr, pmt.addr) }, ... ) |