如何在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");
});
})
答案 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”)按钮。这门语言很容易学习。