Обратные вызовы jQuery AJAX выполняются в контексте :
... объекта, представляющего настройки ajax, используемые в вызове ($.ajaxSettings
объединены с настройкамипередается $.ajax
)
, поэтому @
(AKA this
) не является вашим экземпляром Session, когда вызываются обратные вызовы.Суть CoffeeScript в этом заключается в том, чтобы привязать обратный вызов к вашему экземпляру Session, используя толстую стрелку :
Толстую стрелку =>
можно использовать для определенияи привязать его к текущему значению this
, прямо на месте.Это полезно при использовании библиотек на основе обратного вызова, таких как Prototype или jQuery, ...
Я думаю, вы хотите сказать следующее:
@loginForm.bind 'ajax:before', (xhr, settings) =>
console.log @loader // --------------------^^
return
И вам не нужныreturn
вообще, если последнее утверждение в вашем обратном вызове не может случайно принять значение false
, если вы не хотите отменять вызов AJAX;если вы хотите быть параноиком (разумная позиция, поскольку они действительно хотят нас поймать), то простого true
в конце будет достаточно, чтобы получить значение не false
, возвращаемое из обратного вызова:
@loginForm.bind 'ajax:before', (xhr, settings) =>
console.log @loader // --------------------^^
true