【问题标题】:Play framework : how to use "moreStyles" and "moreScripts"播放框架:如何使用“moreStyles”和“moreScripts”
【发布时间】:2011-03-11 17:15:18
【问题描述】:

main.html文件中,在Play!创建的默认项目中,有这一行:

#{get 'moreStyles' /}

我知道如果我需要添加更多样式,在我的视图脚本中,我必须使用

#{set tag:'value' /}

其中tag 应该是moreStyles,但是将值设置为完整的HTML <link> 标记似乎很糟糕。如果视图需要添加更多样式或脚本会怎样?

谢谢!

【问题讨论】:

    标签: java templates playframework


    【解决方案1】:

    您可以使用以下方式设置更多样式:

    #{set 'moreStyles'}
            #{stylesheet 'main.css' /}
    #{/set}
    

    喜欢脚本:

    #{set 'moreScripts'}
        #{script 'base64.js'/}
    #{/set}
    

    【讨论】:

    • 我差点忘了这个问题。我在用户组上找到了类似的解决方案,但没有提到#{script }#{stylesheet }。 :)
    • 这个例子有效,但只适用于简单的情况。如果您打算重用此 setter 并期望结果合并,请参阅以“仅使用 #set...”为主角的另一个答案
    【解决方案2】:

    只需使用 #{set} 标签就会覆盖之前的值。

    如果你发出

    #{set 'moreStyles'}xxx#{/set}
    

    然后

    #{set 'moreStyles'}yyy#{/set}
    

    然后

    #{get 'moreStyles' /}
    

    只会返回 yyy

    为了达到你想要的,你必须

    #{set 'moreStyles'}
        #{get 'moreStyles' /}
        #{stylesheet 'main.css' /}
    #{/set}
    

    然后样式表 main.css 将被添加到 morestyles 之前的值中

    在类似的情况下,我最终创建了自己的 #{addStyle} 标签

    【讨论】:

    • 好吧,我没有遇到这样的问题,但是谢谢你分享这个,如果我遇到这个问题,我会知道该怎么做。
    • 仅供参考,我将其剪切并粘贴到我的代码中,但所有播放示例都在驼峰式大小写中使用“moreStyles”,并且设置变量区分大小写,因此“morestyles”不起作用。一旦我发现这个例子工作得很好。
    • 感谢您的评论,如果您不依赖播放示例,上面的代码将起作用,但为了避免混淆,我将对其进行编辑...
    • 我同意你对 #{addStyle} 的评论,我写了 append.html,所以我可以使用 #{append 'moreStyles'}...#{/append},其中包含:#{set _arg} #{get _arg /}#{doBody /}#{/set}
    【解决方案3】:
    #{set 'moreStyles'}
    <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/ui-lightness/jquery-ui.css" charset="${_response_encoding}"/>
    #{/set} 
    #{set 'moreScripts'}
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js" type="text/javascript" charset="${_response_encoding}"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/i18n/jquery.ui.datepicker-zh-CN.js" type="text/javascript" charset="${_response_encoding}"></script>
    <script language="javascript">
        $(document).ready(function() {
            $('.datepicker').datepicker();
        });
    </script>
    #{/set}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 2011-08-16
      • 2011-12-15
      • 2012-05-25
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多