24

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");
    });
  })
4

3 に答える 3

33

これを書くためのもう一つの少し凝縮された方法は次のとおりです。

$ ->
  $('input#username').keyup ->
    username = $(this).val()
    callback = (response) -> markerUsername response
    $.get '/users/check_username/', {username}, callback, 'json'

親の欠如、および省略形の「{username}」オブジェクトリテラルに注意してください。

于 2011-01-31T14:17:21.373 に答える
16

これは私がこれまでに思いついた中で最高の一般的なパターンです。

$.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) {}
});
于 2011-03-11T22:03:55.227 に答える
2

これは方法です:

$(->
    $('input#username').keyup(->
        username = $('input#username').val()
        url = '/users/check_username/'
        params = {username: username}
        $.get(url, params, (response)->
            markerUsername(response)
        , "json")
    )
)

これらの括弧の一部は省略できますが、私の意見では、コードフローを理解するのに役立ちます(少なくともこの状況では)。

ここhttp://jashkenas.github.com/coffee-script/(「コーヒースクリプトを試す」を使用)ボタンをいじることをお勧めします。言語はとても簡単に習得できます。

于 2011-01-31T10:37:00.377 に答える