0

它是我的课程的扩展版本,我无法访问新添加的方法。为什么不?

    class Form
        constructor : (@form) ->

            @form = $ @form

        ajaxSubmit : ->
            $.post @form.attr('action'), @form.serialize(), @submitCallback         

        submitCallback : (response) ->
            $.noop()

    class Login extends Form

        submitCallback : (response) ->
            @good() if response #this.good is not a function
            @bad() unless response #this.bad is not a function

        good : ->
            window.location = @form.attr 'data-go'

        bad : ->
            @form
                .animate({left : -100}, 100)
                .animate({left : 50}, 200)
                .animate({left : -25}, 400)
                .animate({left : 0}, 600)
4

1 回答 1

2

您的$.post回调是在由您选择的上下文中调用的,$.post并且该上下文不是@您期望的(在该页面中搜索“上下文”):

默认情况下,上下文是一个对象,表示调用中使用的 ajax 设置($.ajaxSettings与传递给的设置合并$.ajax)。

您应该submitCallback使用粗箭头 ( =>)定义您的对象,以将其绑定到您的对象:

submitCallback: (response) =>
    #...
于 2012-06-13T22:52:46.140 回答