在 Slim 中处理数据属性的最佳方法

Posted

技术标签:

【中文标题】在 Slim 中处理数据属性的最佳方法【英文标题】:Best way to handle data attributes in Slim 【发布时间】:2013-09-27 16:28:15 【问题描述】:

我在个人项目中评估 Slim 作为 HAML 的替代品,但它似乎不像 HAML 那样优雅地处理 html5 数据属性。我希望有人可能也遇到过这种情况,或者可能知道我在他们的文档中还没有找到的选项/语法。

HAML 允许您简单地使用嵌套散列定义HTML 5 data attributes,如下所示:

%adata: key1: 'val', key2: 'val'

导致

<a data-key1='val' data-key2='val'></a>

【问题讨论】:

【参考方案1】:

Slim 有多种方式

    作为哈希

    如果给出 Hash,属性将被连字符(例如 data=a:1,b:2 将呈现为 data-a="1" data-b="2")

    如“mu太短”所说直接使用,相当直观。

    a data-title="help" data-content="foo"
    

    使用 Ruby 代码。我经常这样做,很少超过。

    = link_to 'foo', bar_path, data: a: 'a', b: 'b'
    

【讨论】:

太棒了,#3 正是我想要的。我没有看到像 HAML 文档那样描述这种情况的文档中出现任何内容。谢谢! moss,#3 既不是 Haml 也不是 Slim,而是 Rails 助手 :) 请注意,如果您使用 a href="#" data=user_name: 'fred', user_id: 1,它会将其转换为 <a href="#" data-user-name="fred" data-user-id="1"></a> - 这与 Rails 无关,因为您会看到它在 Sinatra 应用程序中也能正常工作。 请注意,#3 不适用于像 .container, data: url: "link", value: "stuff" 这样的直接 div 元素,而必须使用 #2,例如 .container[ data-url="link data-value="stuff" ] 顺便提一下:Slim 真的很漂亮。【参考方案2】:

使用 splat 运算符:

h1#section-title*'data-url'=>'test', 'data-id'=>'test' = @project.name

【讨论】:

【参考方案3】:
.your-class*data: first_attribute: 'first value', second_attribute: 'second value' 

会产生

<div class="your-class" data-first_attribute="first value" data-second_attribute="second value"></div>

【讨论】:

【参考方案4】:

我更喜欢这种修复...

@products.each do |product|
  .module data-id=product.id

它对我有用

【讨论】:

以上是关于在 Slim 中处理数据属性的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

Java中处理复杂配置的最佳方法

使用 TF-Slim 在我自己的数据上微调预训练的 VGG16 模型

在对象属性上创建或添加数字的最佳方法

在 pyspark 中转换或处理日期数据类型的最佳方法是啥

在 python 中处理大型数据集的最佳方法

在 DAL 中处理数据库连接的最佳方法 - 创建还是通过?