36

私は持てます

%a{href: '#', data_toggle_description_length: 'toggle_me_ajax'}

ダッシュではなくアンダースコアが表示されます。

<a href="#" data_toggle_description_length="toggle_me_ajax"></a>

ただしHTML5 data-、属性が必要です。つまり、

<a href="#" data-toggle-description-length="toggle_me_ajax"></a>

しかし、アンダースコアをダッシュ​​に置き換えようとすると、つまり

%a{href: '#', data-toggle-description-length: 'toggle_me_ajax'}

構文エラーが発生します:

/home/durrantm/Dropnot/webs/rails_apps/linker/app/views/links/_links.html.haml:13: syntax error, unexpected tLABEL
...data-toggle-description-length: 'toggle_me_ajax')}>\n    tog...
...                               ^
/home/durrantm/Dropnot/webs/rails_apps/linker/app/views/links/_links.html.haml:13: syntax error, unexpected ')', expecting '}'
...ption-length: 'toggle_me_ajax')}>\n    toggleMeAjax\n  </a>\...
...                               ^
/home/durrantm/Dropnot/webs/rails_apps/linker/app/views/links/_links.html.haml:13: unknown regexp options - pa
/home/durrantm/Dropnot/webs/rails_apps/linker/app/views/links/_links.html.haml:13: syntax error, unexpected $undefined
... toggleMeAjax\n  </a>\n</span>\n", -1, false);::Haml::Util.h...
...                               ^
/home/durrantm/Dropnot/webs/rails_apps/linker/app/views/links/_links.html.haml:13: unterminated string meets end of file
/home/durrantm/Dropnot/webs/rails_apps/linker/app/views/links/_links.html.haml:13: syntax error, unexpected $end, expecting '}'
4

3 に答える 3

67

これを試して:

%a{"data-toggle-description-length" => "toggle_me_ajax", href: "#"}

また

%a{href: "#", :data => {:toggle_description_length => "toggle_me_ajax"}}

詳細については、こちらを参照してください

オンラインで入手できるhtml2haml コンバーターを使用することもできます

編集:

コメントで述べたように、機能する構文がさらにいくつかあります

 %a{href: "#", { "data-toggle-description-length": "toggle_me_ajax" }}

また

%a{href: "#", { :"data-toggle-description-length" => "toggle_me_ajax" }}

後者は醜くてちょっと面倒に見えると思うので、私はまだ最初の2つを好みます.

于 2014-06-22T17:29:12.787 に答える
10

{ ... }Haml でスタイルを使用する必要はあまりありません。HTML スタイル属性は、html 生成のためのより柔軟で自然な方法です。

%a(href="#" data-toggle="target") my link

コンマやハッシュロケットなどは必要ありません。スタイルを切り替えることなく、非常に簡単に変数を補間したり、変数を直接割り当てたりすることもできます。

例えば

%a(href=link data-toggle="#{id}-toggle")

linkおよびは、現在バインドidされているスコープの変数です。

特に、xmlns から属性をシームレスに含めることもできます。svg 生成では、たとえば次のように多くの名前空間プレフィックスが使用されます。

%link(xlink:type="simple" xlink:href=link)

別のスタイルを使用する説得力のある理由はありません。

于 2015-10-06T13:46:55.863 に答える