如何使用coffeescript制作$ .get请求?

时间:2011-01-31 10:30:33

标签: jquery coffeescript

如何在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");
    });
  })

3 个答案:

答案 0 :(得分:33)

这是另一种略显浓缩的写作方式:

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

请注意缺少parens和简写“{username}”对象文字。

答案 1 :(得分:15)

这是我迄今为止提出的最佳通用模式:

$.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) {}
});

答案 2 :(得分:2)

这是一种方式:

$(->
    $('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/(使用“try coffeescript”)按钮。这门语言很容易学习。