Fix bug with first render #70
@@ -144,9 +144,10 @@ function XmlParser:ParseXmlText(xmlText)
|
|||||||
return top
|
return top
|
||||||
end
|
end
|
||||||
|
|
||||||
local function maybeExecuteScript(renderContext)
|
local function maybeExecuteScript(data, renderContext)
|
||||||
if (renderContext.script ~= nil) then
|
local script = xmlValue('script', data)
|
||||||
load(renderContext.script, nil, "t", renderContext.env)()
|
if (script ~= nil) then
|
||||||
|
load(script, nil, "t", renderContext.env)()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -210,6 +211,7 @@ return {
|
|||||||
if (tableName == "props") then
|
if (tableName == "props") then
|
||||||
self:updateValue(k, renderContext.env.props[entryName])
|
self:updateValue(k, renderContext.env.props[entryName])
|
||||||
elseif (tableName == "shared") then
|
elseif (tableName == "shared") then
|
||||||
|
self:updateValue(k, renderContext.env.shared[entryName])
|
||||||
local sharedObservers = renderContext.sharedObservers
|
local sharedObservers = renderContext.sharedObservers
|
||||||
if (sharedObservers[entryName]) == nil then
|
if (sharedObservers[entryName]) == nil then
|
||||||
sharedObservers[entryName] = {}
|
sharedObservers[entryName] = {}
|
||||||
@@ -232,11 +234,6 @@ return {
|
|||||||
"foreground"
|
"foreground"
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
if(xmlValue("script", data)~=nil)then
|
|
||||||
renderContext.script = xmlValue("script", data)
|
|
||||||
end
|
|
||||||
|
|
||||||
local events = {"onClick", "onClickUp", "onHover", "onScroll", "onDrag", "onKey", "onKeyUp", "onRelease", "onChar", "onGetFocus", "onLoseFocus", "onResize", "onReposition", "onEvent", "onLeave"}
|
local events = {"onClick", "onClickUp", "onHover", "onScroll", "onDrag", "onKey", "onKeyUp", "onRelease", "onChar", "onGetFocus", "onLoseFocus", "onResize", "onReposition", "onEvent", "onLeave"}
|
||||||
for _,v in pairs(events)do
|
for _,v in pairs(events)do
|
||||||
if(xmlValue(v, data)~=nil)then
|
if(xmlValue(v, data)~=nil)then
|
||||||
@@ -361,7 +358,7 @@ return {
|
|||||||
local data = XmlParser:ParseXmlText(f.readAll())
|
local data = XmlParser:ParseXmlText(f.readAll())
|
||||||
f.close()
|
f.close()
|
||||||
lastXMLReferences = {}
|
lastXMLReferences = {}
|
||||||
maybeExecuteScript(renderContext)
|
maybeExecuteScript(data, renderContext)
|
||||||
self:setValuesByXMLData(data, renderContext)
|
self:setValuesByXMLData(data, renderContext)
|
||||||
end
|
end
|
||||||
return self
|
return self
|
||||||
@@ -461,7 +458,7 @@ return {
|
|||||||
local data = XmlParser:ParseXmlText(f.readAll())
|
local data = XmlParser:ParseXmlText(f.readAll())
|
||||||
f.close()
|
f.close()
|
||||||
lastXMLReferences = {}
|
lastXMLReferences = {}
|
||||||
maybeExecuteScript(renderContext)
|
maybeExecuteScript(data, renderContext)
|
||||||
self:setValuesByXMLData(data, renderContext)
|
self:setValuesByXMLData(data, renderContext)
|
||||||
end
|
end
|
||||||
return self
|
return self
|
||||||
|
|||||||
Reference in New Issue
Block a user