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

mmo*_*oss 53 ruby haml ruby-on-rails templating slim-lang

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

HAML允许您通过使用嵌套哈希来定义HTML 5数据属性,如下所示:

%a{data: {key1: 'val', key2: 'val'}}

导致

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

Bil*_*han 90

Slim有多种方法

  1. 作为哈希

    如果给出哈希将被连字的属性(例如data = {a:1,b:2}将呈现为data-a ="1"data-b ="2")

  2. 直接使用它,因为提到"mu太短",非常直观.

    a data-title="help" data-content="foo"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用Ruby代码.我经常这样做,很少见.

    = link_to 'foo', bar_path, data: {a: 'a', b: 'b'}
    
    Run Code Online (Sandbox Code Playgroud)

  • 苔藓,#3既不是哈姆也不是斯利姆,而是Rails的助手:) (3认同)
  • 请注意,如果你执行`a href ="#"data = {user_name:'fred',user_id:1},它会将其转换为`<a href ="#"data-user-name ="fred"data-user -id ="1"> </a>` - 这与Rails无关,因为你会发现它也适用于Sinatra应用程序. (3认同)
  • 请注意,#3不适用于直接div元素,如`.container,data:{url:"link",value:"stuff"}`相反,你必须使用#2,如`.container [data-url = "link data-value ="stuff"]` (2认同)