Прежде всего вам нужно понять разницу между => и -> для определения функций в coffeescript.
=> связывает это внутри функции с тем, что это было, когда функция была определена .
-> связывает этот внутри функции с тем, что это было, когда функция называется
self = this
- это знак запаха кода в coffeescript, который вы не понимаете, как правильно использовать вышеизложенное, когда пытаетесь захватить this для решения проблемы, которая => решается.
Ваша функция рендеринга может быть переписана как
render: ->
@ReadUserInfo()
console.log "1"
renderTemplate = =>
console.log "5"
#Below Issue is wierd.......#TODO
@USER = JSON.parse(JSON.stringify(@USER))
$(@.el).html clientsPromotionsTemplate
promos: USER.client_promotions
$('.spinner#load').hide()
@.FadeIn()
$('.spinner#load').show()
console.log "2"
@DownloadUserPromotions renderTemplate
@
И, вероятно, исправит некоторые ваши странные проблемы. Раньше я был уверен
что линия у вас была
@USER = JSON.parse(JSON.stringify(@USER))
никогда бы не работал так, как вы ожидали, так как @USER был бы расширен до этого .USER и
все, что это может быть, когда обратный вызов вызывается может быть довольно случайным в зависимости
в вашем фреймворке и браузере.