【问题标题】:how do i make a $.get request using coffeescript?如何使用 coffeescript 发出 $.get 请求?
【发布时间】:2011-06-18 12:01:20
【问题描述】:

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

【问题讨论】:

    标签: jquery coffeescript


    【解决方案1】:

    下面是另一种稍微简洁的写法:

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

    请注意缺少括号,以及速记“{username}”对象字面量。

    【讨论】:

    • 这是用 CoffeeScript 编写它的一种很好的规范方式 - 来自为您带来 CoffeeScript 的人!这个例子说明了 CoffeeScript 的一些特性,我认为这些特性使 CoffeeScript 成为一种很好的小语言。
    • 感谢您的回答和咖啡脚本。我认为我掌握coffeescript 的困难更多是因为我缺乏javascript 知识。但是,如果我可以提出建议,请在您的咖啡脚本页面上解释以func_name = function(x) 开头的奇怪的函数定义。早点知道这一点会为我省去一些麻烦。
    【解决方案2】:

    这是迄今为止我想出的最好的通用模式:

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

    【讨论】:

      【解决方案3】:

      这是一种方式:

      $(->
          $('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/ 摆弄coffeescript(使用“try coffeescript”)按钮。该语言非常容易学习。

      【讨论】:

      • 非常感谢。也许我只是密集或其他什么,但对于我的生活,即使在查看了我可以在网上找到的所有示例之后,我也无法弄清楚这一点。
      • 我认为这看起来比接受的要好,虽然我知道这只是一种偏好并且谁发布了答案......
      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多