簡単そうに見えることをやろうとしていますが、どういうわけか私にはわかりません。次のように、tasks.jsファイルのリンクにクリックイベントを追加したいと思います。
$ ->
$('.cancel_task').click ->
$('#task_form').toggle
これは次のようにレンダリングされます。
(function() {
$(function() {
return $('.cancel_task').click(function() {
return $('#task_form').toggle;
});
});
}).call(this);
私が欲しいのは次のようなものです:
$('.cancel_task').click(function()
{
$('#task_form').toggle();
});
CoffescriptとRails 3.1スタックでこれを達成するにはどうすればよいですか?
コーヒーはあなたがすることすべてを限られた範囲で包むことになっているので、あなたは世界にグローバルを住まわせません。これは、持っていない限り、これを無視しないでください。トップレベルでは、this.something = "value"
を使用してエクスポートできます。
パラメータがない場合、関数呼び出しには親が必要になるため、上記のコードは機能しません。これにより、2つの切り取りが機能的に同じになります。関数はJavaScriptの変数であるため、親なしの結果ではなく、その関数を返したいと想定しているだけです。
$ ->
$('.cancel_task').click ->
$('#task_form').toggle()
最後に、Coffee関数は常に関数の最後の値を返します。それはまさにそれがどのように機能するかです。したがって、return
ステートメントについて心配する必要はありません。結果はいつでも無視できます。
投稿した2番目のスニペットはcoffee
からの正しい出力であり、投稿した2番目と最後のスニペットは(実際には)機能的に同等です。必要に応じて、coffee
の--bare
オプション(これは文書化されています)を使用してトップレベルのクロージャを取り除くことができますが、それ以外の場合は、問題が発生しない限り、CoffeeScriptの出力について心配する必要はありません。