Dust.js 不要在循环中的空值后添加分隔符
Dust.js do not add separator after empty values in loop
我有一组值,例如:
{
"languages": [
"",
"CSS",
"HTML",
"",
"JavaScript",
"Dust",
"",
""
]
}
预期输出:
CSS, HTML, JavaScript, Dust
是否可以在不创建自定义助手的情况下不在我的 dust 模板中的空值后添加分隔符?问题是数组可以有任意长度和任意数量的空值。
只使用内置的帮助程序就可以编写
{#languages}
{@ne key=. value=""}{.}{@sep}, {/sep}{/ne}
{/languages}
但是,如果数组中的最后一项是空白,这将留下悬空的逗号。如果你能找到数组中的第一个非空白项并传递该数据,请尝试这个相当丑陋的版本:
{#languages}
{@ne key=. value=""}{@sep}{@ne key=$idx value=firstNonBlankItem}, {/ne}{/sep}{.}{/ne}
{/languages}
如果 firstNonBlankItem
设置为正确的索引(上面示例中的 1
),您会得到想要的。
否则,您真的应该编写一个自定义助手——这就是 Dust 想要您做的。您甚至不需要在上下文中包含助手;相反,您可以编写自定义全局帮助器并将其包含在 Javascript.
中
我有一组值,例如:
{
"languages": [
"",
"CSS",
"HTML",
"",
"JavaScript",
"Dust",
"",
""
]
}
预期输出:
CSS, HTML, JavaScript, Dust
是否可以在不创建自定义助手的情况下不在我的 dust 模板中的空值后添加分隔符?问题是数组可以有任意长度和任意数量的空值。
只使用内置的帮助程序就可以编写
{#languages}
{@ne key=. value=""}{.}{@sep}, {/sep}{/ne}
{/languages}
但是,如果数组中的最后一项是空白,这将留下悬空的逗号。如果你能找到数组中的第一个非空白项并传递该数据,请尝试这个相当丑陋的版本:
{#languages}
{@ne key=. value=""}{@sep}{@ne key=$idx value=firstNonBlankItem}, {/ne}{/sep}{.}{/ne}
{/languages}
如果 firstNonBlankItem
设置为正确的索引(上面示例中的 1
),您会得到想要的。
否则,您真的应该编写一个自定义助手——这就是 Dust 想要您做的。您甚至不需要在上下文中包含助手;相反,您可以编写自定义全局帮助器并将其包含在 Javascript.
中