У меня есть следующий Coffeescript:
$(document).ready ->`
$.ajax 'http://www.omdbapi.com/?i=tt1285016',
type: 'GET'
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) -> $('body').append "AJAX Error: #{textStatus}"
success: (data, textStatus, jqXHR) -> $('body').append "Successful AJAX call: #{data}"
Однако это генерирует следующий Javascript, который мне не подходит:
(function() {
$(document).ready(function() {
return $.ajax('http://www.omdbapi.com/?i=tt1285016');
});
({
type: 'GET',
dataType: 'html',
error: function(jqXHR, textStatus, errorThrown) {
return $('body').append("AJAX Error: " + textStatus);
},
success: function(data, textStatus, jqXHR) {
return $('body').append("Successful AJAX call: " + data);
}
});
}).call(this);
Может ли кто-нибудь сказать мне, где это не так?
Спасибо Адам
1 ответ
Мне не удалось скомпилировать ваш текущий код (CoffeeScript version 1.6.1
), но если вы удалите символ `
после $(document).ready ->
, он скомпилируется в
(function() {
$(document).ready(function() {
return $.ajax('http://www.omdbapi.com/?i=tt1285016', {
type: 'GET',
dataType: 'json',
error: function(jqXHR, textStatus, errorThrown) {
return $('body').append("AJAX Error: " + textStatus);
},
success: function(data, textStatus, jqXHR) {
return $('body').append("Successful AJAX call: " + data);
}
});
});
}).call(this);
Я не уверен, как CoffeeScript
обрабатывает разрывы строк, но я предполагаю, что вы компилируете файл с Windows end-of-lines
(CRLF
) в системе *nix
, и это вызывает проблему .
Я говорю это, потому что что-то вроде следующего кода:
$(document).ready ->
$.ajax 'http://www.omdbapi.com/?i=tt1285016',
type: 'GET'
dataType: 'html'
error: (jqXHR, textStatus, errorThrown) -> $('body').append "AJAX Error: #{textStatus}"
success: (data, textStatus, jqXHR) -> $('body').append "Successful AJAX call: #{data}"
Компилируется в опубликованный вами. (обратите внимание, что в строке 3 после ,
есть разрыв строки)
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.