【问题标题】:Inline if statement in grailsgrails中的内联if语句
【发布时间】:2011-09-15 21:40:49
【问题描述】:

在 Grails 中有没有办法在 HTML 属性上执行条件内联,例如:

<div class="${if(sec.isLoggedIn()) loggedInClass}">

如果用户已登录,我正在尝试为某些元素添加一个类。

【问题讨论】:

    标签: grails groovy gsp


    【解决方案1】:

    这可能对你有用:

    <div class="${(sec.isLoggedIn()?loggedInClass:null)}">
    

    或者试试这个:

    <div class="${(sec.isLoggedIn()?'loggedInClass':'null')}">
    

    【讨论】:

    • hmm 没有用,但奇怪的是,当我运行它时,你会期望看到
      但我得到的是 。因此,由于某种原因,使用这样的代码会使等号和引号不显示。不知道为什么会这样。
    • @Trip 这意味着它被评估为空。尝试使用字符串而不是 null。试试这个:&lt;div class="${(sec.isLoggedIn()?'loggedInClass':'null')}"&gt;
    • nvm 上一篇文章它在 chrome 开发工具中仅显示为类,因为 class="" 只是以这种方式显示。我的问题虽然现在我猜是 sec.ifLoggedIn() 返回错误。
      test
      总是导致 notLoggedIn。我知道我已登录,因为我有一个
      : ifLoggedIn> 并且可以正常工作。
    • @Trip aaahhh ddnt 意识到你正在寻找开发工具。是的,由于某种原因,chrome 开发工具在看不到任何属性时会这样做。
    • 知道为什么 ${sec.ifLoggedIn()} 会是假的,而 会是真的吗?
    【解决方案2】:

    你可以这样做:

    <div class="${sec.loggedIn ? 'loggedInClass' : ''}">
    

    【讨论】:

    • 我同意这是最好的解决方案
    • Tim,类似于 JSP 使用 &lt;% %&gt; 标记内联代码,我可以在 grails 中使用 ${} 来处理任意代码,而不仅仅是评估为表达式的语句吗?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签