【问题标题】:Hogan JS IF statements霍根 JS IF 语句
【发布时间】:2014-07-26 11:25:03
【问题描述】:

我不是很喜欢 jam 语法,想知道是否可以使用 hoganJS 来做这个简单的比较?

示例代码是用 JADE 编写的。

我做了一些谷歌搜索,似乎意见不一。我只是想知道是否有办法或者我需要改变什么?

if user
 li
   a(href='/dashboard') Dashbaord
 li
   a(href='/logout') Logout
else
 li
   a(href='/login') Logi§n

block body

【问题讨论】:

    标签: javascript html dom pug hogan.js


    【解决方案1】:

    Hogan 是 Mustache 的实现,因此适用相同的语法。

    {{#user}}
      <li><a href="/dashboard">Dashboard</a></li>
      <li><a href="/logout">Logout</a></li>
    {{/user}}
    {{^user}}
      <li><a href="/login">Login</a></li>
    {{/user}}
    

    PS 我曾经争论过是否使用 Hogan 或其他一些 Mustache 实现而不是 Handlebars,因为它更快/更轻。我的建议是使用 Handlebars 而不是 Hogan,并编译您的前端并仅在构建时使用 Handlebars 运行时 - 因为它具有更好的条件语法并支持一些更有用的东西而不会太过分。

    Handlebars 会更干净:

    {{#if user}}
    ...
    {{else}}
    ...
    {{/if}
    

    但无论如何霍根还是不错的,所以你的选择。我也不喜欢 Jade,它让我想起了 CoffeeScript 什么的。

    【讨论】:

    • 干杯伙伴,我实际上已经完全忘记了车把。为所有的帮助干杯! :)
    • hogan 模板能否相互继承只是另一个简单的问题?
    • @user61026 是的,你可以,语法就像{{&gt; myPartialName}} 不完全确定它们的默认路径。渲染方法还有第二个参数,可以将部分作为选项,但我认为这是可选的 - 文档有点模糊:twitter.github.io/hogan.js。尝试只添加一个,您可能会收到一个错误,告诉您它预期的局部位置。
    • @DominicTobias 这个答案对我帮助很大,谢谢。我认为{{#user}} 相当于{{#if user}} 和{{^user}} 相当于{{else}}?
    • @Wade np!是的,差不多,实际上从字面上讲,Mustache 是 if (user) { ..stuff.. } if (!user) {..stuff..} - 但它相当于 else,只是更冗长
    猜你喜欢
    • 2013-05-28
    • 2016-05-04
    • 1970-01-01
    • 2022-01-18
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多