18

最近、Rails アプリケーションの HTML カスタム データ属性に関する問題に直面しています。いくつかのデータ属性を html タグに追加し、後で javascript(jQuery) コードで使用するために、次のパターンを使用します。

= %a.name{ href: "url.com", data: {first_name: "ben", last_name: "amsalem} }

JavaScript コードでは、これらの属性にアクセスします。

alert($(".name").data("first_name") + " " + $(".name").data("last_name"));

私の開発環境ではうまくいき、期待どおりの結果が得られます (過去の本番環境でも同じことが言えます) が、現在の本番バージョンでは「未定義」の値が得られます。ページの HTML ソースを確認したところ、次のような内容になっていることがわかりました。

<a class="name" href="url.com" data-first-name="ben" data-last-name="amsalem" />

それ以外の:

<a class="name" href="url.com" data-first_name="ben" data-last_name="amsalem" />

なぜそれが起こるのですか?変化の原因は何ですか?

4

3 に答える 3

16

それは完全に正常でdata: { first_name: "ben" }あり、生成するはずdata-first-name="ben"です。

この属性にアクセスする最良の方法は を使用することですが.data("firstName")、これ.data("first-name")も機能します。

于 2013-03-05T16:31:23.743 に答える
4

HAMLを使用していると思います。Hypernation は 4.0 以降のデフォルトです。hyphenate_data_attrsこれをオフにするには、false に設定します。

ドキュメント: http://haml.info/docs/yardoc/Haml/Options.html#hyphenate_data_attrs-instance_method

元の github プル ディスカッション: https://github.com/haml/haml/pull/488

于 2013-03-05T16:53:13.090 に答える
0

私が行ったテストの後: 開発ではバージョン 3.2.9 の宝石があり、実稼働では 3.2.12 だったようです - 間違った動作 (に変換<a date-last_name/>) がこれらのバージョン間で修正され、開発バージョンをアップグレードした後、変化する。

于 2013-03-05T17:14:26.583 に答える