1
0
mirror of https://github.com/lxsang/antd-web-apps synced 2024-11-20 02:18:20 +01:00
antd-web-apps/silk/Template.lua
2018-08-23 11:15:08 +02:00

37 lines
827 B
Lua

-- create class
Template = BaseObject:extends{class="Template",registry = {}}
function Template:initialize()
self.vars = {}
end
function Template:set(k, v, ow)
if not self.vars[k] or (self.vars[k] and ow) then
self.vars[k] = v
end
end
function Template:remove(k)
self.vars[k] = nil
end
-- infer view path
function Template:setView(name, controller)
self.path = VIEW_ROOT..DIR_SEP..self.registry.layout..DIR_SEP..controller..DIR_SEP..name..".ls"
if ulib.exists(self.path) then
else
self:error("View not found: "..self.path)
end
end
-- render the page
function Template:render()
local fn, e = loadscript(self.path)
if fn then
local r,o = pcall(fn, self.vars)
if not r then
self:error(o)
end
else
self:error(e)
end
end