Lapis的layout模板

作者:糖果

在Lapis框架的源码当中的views文件夹有一个layout.lua文件。

html = require "lapis.html"
class Default extends html.Widget
  content: =>
    html_5 ->
      head -> title @title or "Lapis Page"
      body -> @content_for "inner"

moonscript的代码很简单。提起这个事是因为, 如果不注意这段代码, 在用lapis的render渲染模板时,这个模板生成的”Lapis Page”的Hmtl title标签会覆盖你的etlua中的title标签。 {render = “index”}

这段程序会自动生成下面下的代码

<!DOCTYPE HTML><html lang="en"><head><title>Lapis Page</title></head><body>

下面是moonscript翻译后的lua代码

    content = function(self)
      return html_5(function()
        head(function()
          return title(self.title or "Lapis Page")
          --return "" 
        end)
        return body(function()
          return self:content_for("inner")
        end)
      end)
    end

需要在你的APP里设置self.title=”XXXXXXXX”

app:get("/",
function(self)
    self.title="smartisan.black"
    return { render = "index" }
end
)

这样title会被设置成samrtisan.black,但是上面自动生成代码其实还是多余的,最暴力的方法是把layout.lua代码改了。

        head(function()
          --return title(self.title or "Lapis Page")
          eturn "" 
        end)

直接return ““空回去, 这样etlua中的title暂时不会被覆盖了。

糖果

糖果
LUA从入门到放弃

Moonscript如何显示复选框

Moonscript如何显示复选框 Continue reading

Lapis框架的常用处理方法

Published on March 02, 2017