代码之家  ›  专栏  ›  技术社区  ›  Jasper

提升框架bindhelpers.attr问题(或更好的实践?)

  •  1
  • Jasper  · 技术社区  · 15 年前

    我的问题是提取XHTML属性以生成绝对链接, 因为它们在测试和生产上需要不同 环境。 我想使用绑定所有“src”和“href”的“global snippet” “localhost:8080”或“www.mydomain.com”的属性取决于 CONF值。

    模板的外观如下:

    <lift:Global>
      <html><body><a G:href="/somelink">some text</a></body></html>
    </lift:Global>
    

    这是global.render方法:

    bind("G",template,
      AttrBindParam("href",Conf.localhost
        +BindHelpers.attr("G","href").map(_.toString).getOrElse("none") ,"href")
    )
    

    但在呈现的页面中,我看到的是…href=“confValuenone”。

    我做错什么了? 有没有更好的方法来配置不同的环境?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Jasper    15 年前

    我现在用奶嘴。它们在模板方面有点重,但会导致更清晰的代码片段。

    片段:

    import xml.{UnprefixedAttribute, MetaData}
    
    ...
    
    def src(in:MetaData):MetaData = {
      new UnprefixedAttribute("src",Conf.localhost+in.value.toString,scala.xml.Null)
    }
    
    def href(in:MetaData):MetaData = {
      val out = new UnprefixedAttribute("href",Conf.localhost+in.value.toString,scala.xml.Null)
      out
    }
    

    模板:

    ...
    <script type="text/javascript" lift:Global.src="/inc/showdown.js" />
    <link rel="stylesheet" type="text/css" lift:Global.href="/inc/style.css" />
    ...