1

my に次の変数がありますmain_controller.rb

def create:
   @token = "24vgd32"
end

私の中views/create.erbで、私は書いた:

<%= javascript_tag do %>
   window.my_token = '<%= j @token %>';
<% end %>

これにより、このページが参照する任意の JavaScript ファイルでこの変数を使用できます。

しかし、どうすれば私の中でそれを使うことができますapplication.jsか?

これは私のapplication.jsです:

$(document).ready(function(){
  licensario.getLicense({
    wizardToken: my_token
  });
});

どんな助けでも大歓迎です!

4

3 に答える 3

2

create.html.erb でこれを使用します

<%= hidden_field_tag :my_token, @token, :id => 'some_field_id' %>

some_field_idmy_tokenを目的の名前に置き換えます。

あなたのjavascriptファイルで

$(document).ready(function(){
  token = $('#some_field_id').val();
  //use your token for any other means.
});
于 2013-01-30T12:51:33.823 に答える
1

3つの方法があります:

  • js ファイルで erb を使用して、application.js.erb. ただし、渡したいデータはファイルがコンパイルされたときに利用可能でなければならないため、これはおそらくやりたいことではありません。
  • サーバーに XHR リクエストを送信して、必要な値を取得できます。
  • ビューの dom に値を埋め込むことができます。非表示フィールドの使用を提案する人もいますが、私はむしろデータ属性を使用する傾向があります。たとえば、<body data-my-value="32">.... を実行することで、js で取得できます$('body').data('my-value')。dom がロードされたら、これを呼び出すように注意してください。

私は後者を使う傾向があります。

于 2013-01-30T12:45:33.337 に答える
1

window.my_tokenmy_tokenグローバルスコープで変数を作成します。定義されるとapplication.js単に として利用できますmy_token

于 2013-01-30T12:47:11.207 に答える