是否可以将值传递给 YAML 列表?
Is it possible to pass a value to a YAML list?
我正在寻找一种将值传递给可枚举列表的方法,这样我就可以为
生成一组列表项。该值应由允许它的项目显示。
- 新
- 收藏夹 (15) <-- 15 是我想要显示的值。
- 存档
- 已删除
以下内容并非如此,但应该有助于说明要实现的目标。
HAML
%ul
=list_of t('.menu', favorites_count: 15) do |item|
#{item}
YAML
menu:
- new
- favorites ('%{favorites_count}')
- archived
- deleted
注意:最初我让我的 YAML 在字符串中包含字典形式的
标签,其中一个包含计数值。但是我发现混合使用 HTML 和 YAML 有点笨拙,像这样:
menu:
first_item: <li>new</li>
second_item: <li>favorites %{favorites_count}</li>
third_item: <li>archived</li>
fourth_item: <li>deleted</li>
因此寻找更简洁的选项,它只会在 HAML 端呈现标签,而不会在 YAML 中乱扔标签。
I18n.t
使用与 sprintf
非常相似的插值语法,您可以利用它来发挥自己的优势:
%ul
= list_of t(".item") do |item|
= sprintf(item, favorites_count: 15)
我不完全确定这是正确的 Haml 语法,但你明白了。
我正在寻找一种将值传递给可枚举列表的方法,这样我就可以为
- 生成一组列表项。该值应由允许它的项目显示。
- 新
- 收藏夹 (15) <-- 15 是我想要显示的值。
- 存档
- 已删除
以下内容并非如此,但应该有助于说明要实现的目标。
HAML
%ul
=list_of t('.menu', favorites_count: 15) do |item|
#{item}
YAML
menu:
- new
- favorites ('%{favorites_count}')
- archived
- deleted
注意:最初我让我的 YAML 在字符串中包含字典形式的
menu:
first_item: <li>new</li>
second_item: <li>favorites %{favorites_count}</li>
third_item: <li>archived</li>
fourth_item: <li>deleted</li>
因此寻找更简洁的选项,它只会在 HAML 端呈现标签,而不会在 YAML 中乱扔标签。
I18n.t
使用与 sprintf
非常相似的插值语法,您可以利用它来发挥自己的优势:
%ul
= list_of t(".item") do |item|
= sprintf(item, favorites_count: 15)
我不完全确定这是正确的 Haml 语法,但你明白了。