CoffeeScriptで次のことを行うにはどうすればよいですか?
$( function() {
$('input#username').keyup( function() {
var username = $('input#username').val();
url = '/users/check_username/';
params = { username : username };
$.get(url, params, function(response){ markUsername(response); }, "json");
});
})
これを書くためのもう一つの少し凝縮された方法は次のとおりです。
$ ->
$('input#username').keyup ->
username = $(this).val()
callback = (response) -> markerUsername response
$.get '/users/check_username/', {username}, callback, 'json'
親の欠如、および省略形の「{username}」オブジェクトリテラルに注意してください。
これは私がこれまでに思いついた中で最高の一般的なパターンです:
$.ajax '/yourUrlHere',
data :
key : 'value'
success : (res, status, xhr) ->
error : (xhr, status, err) ->
complete : (xhr, status) ->
コンパイルすると次のようになります。
$.ajax('/yourUrlHere', {
data: {
key: 'value'
},
success: function(res, status, xhr) {},
error: function(xhr, status, err) {},
complete: function(xhr, status) {}
});
これは方法です:
$(->
$('input#username').keyup(->
username = $('input#username').val()
url = '/users/check_username/'
params = {username: username}
$.get(url, params, (response)->
markerUsername(response)
, "json")
)
)
これらの括弧の一部は省略できますが、私の意見では、コードフローを理解するのに役立ちます(少なくともこの状況では)。
ここでcoffeescriptをいじることをお勧めします http://jashkenas.github.com/coffee-script/ (「trycoffeescript」を使用)ボタン。言語はとても簡単に習得できます。