У меня есть следующий модуль CoffeeScript с именем Course. У меня есть небольшой фрагмент кода, который я хотел бы использовать повторно, я создал метод с именем preSelectItemSize
.
Я хотел бы вызвать этот метод при вызове init
, а также в обратном вызове afterShow
Fancybox. Следующий код работает, но он не считает правильным использовать имя модуля, и вместо этого я должен использовать ссылку @
на "это".
Что я делаю не так? (Фрагмент кода сокращен для краткости)
$ = window.jQuery = require("jquery")
Course =
init: ->
$('.js-product-overlay').on 'click', (e) =>
@viewProductClickHandler(e, MediaDetection)
@preSelectItemSize()
viewProductClickHandler: (e, mediaDetection) =>
$('.js-product-overlay').fancybox({
href: wishlist_overlay_href
maxWidth: '775px'
minHeight: '495px'
autoCenter: '!isTouch'
height: 'auto'
scrolling: true
fitToView: false
autoSize: false
padding: 0
tpl:
closeBtn: '<a class="fancybox-item modal__close fancybox-close" href="javascript:;">Close</a>'
afterShow: ->
$('.js-fancybox-close').on 'click', (e) ->
e.preventDefault()
$.fancybox.close()
Course.preSelectItemSize()
})
preSelectItemSize: ->
itemId = $('.modal__product-info').attr('data-item-id')
$('#size-' + itemId).click()
module.exports = Course
afterShow: =>
вместоafterShow: ->
? - person mu is too short   schedule 08.01.2016=>1
, но это не работает. Я только что попробовал еще раз и получил_this.preSelectItemSize is not a function
- person crmpicco   schedule 08.01.2016