Mustachio:没有范围的 if 语句 - 有可能吗?

Posted

技术标签:

【中文标题】Mustachio:没有范围的 if 语句 - 有可能吗?【英文标题】:Mustachio: if-statement without scoping - is it possible? 【发布时间】:2016-08-21 09:53:10 【问题描述】:

我正在将电子邮件模板从 Mandrill 移动到 Postmark,这需要将 Handlebars 转换为 Mustachio。在 Handlebars 中,我有这样的东西:

#if some_variable
<p>This text uses variable: some_variable
/if

根据 Mustache 文档,转换后应该如下所示:

#some_variable
<p>This text uses variable: some_variable
/some_variable

问题在于 Postmark 的 Mustachio 使用范围界定 (https://github.com/wildbit/mustachio/wiki#scoping),因此在这种情况下,它需要以下 JSON 模型:


    "some_variable": 
        "some_variable": "some_variable_value"
    

而不是


    "some_variable": "some_variable_value"

有谁知道如何关闭 Mustachio 的范围,因此它使用预期的示例 JSON 模型?到目前为止,我看到的唯一解决方法(肮脏的一种)是以这种嵌套对象形式传递模板模型,但我已经发现它不适用于所有情况。提前感谢,任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

好的,找到了解决该问题的方法。根据文档https://github.com/wildbit/mustachio/wiki#inverted-groups-or-how-to-make-placeholders,在这种情况下我应该做的是:

#some_variable
<p>This text uses variable: .</p>
/some_variable

然后发送 JSON 模型,如:


    "some_variable": "some_variable_value"

将导致

<p>This text uses variable: some_variable_value</p>

所以问题的答案是使用指向标签值的.运算符。

【讨论】:

以上是关于Mustachio:没有范围的 if 语句 - 有可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

java中那些情况使用if语句时可以不用else?

Netsuite PDF/HTML 模板上带有数字范围的 IF 语句

针对IF语句测试范围值数组的最佳方法

switch 和 if else if else 有什么区别

SQL语句中Case 的用法

使用全局范围初始化struct,其中type依赖于boolean