取消订阅Amplify.js - 防止堆叠订阅的事件

时间:2013-03-12 01:27:40

标签: javascript jquery amplifyjs

我无法理解如何使用Amplify.js取消订阅活动。事件不断叠加,简单放大。根据文档的说法无法使用。

我通常使用匿名回调,但认为命名回调更容易取消订阅。因此,在下面的代码中,我订阅了“registerInterest”事件,该事件在单击按钮后发布。

订阅功能的回调启动表单提交。如果此表单提交失败,并且用户再次单击提交,则会触发两个表单提交请求,因为amplifyjs中的“Subscriptions”堆栈注册了两个“registerInterest”订阅。每次单击提交时,此堆栈都会增长。

我想取消订阅'registerInterest'事件,我不想要重复的事件。

amplify.subscribe('registerInterest',function postRegisterData() {
    jcl.dataManager({
        type: 'POST',
        url: jcl.registerUrl,
        data: register,
        dataType: 'json',
        successEventName: 'registerSuccess',
        contentType: 'application/json',
        errorEventName: 'registerError',
        beforeSend: function (req) {
            req.setRequestHeader( 'Token', jcl.authToken );
            req.setRequestHeader( 'SubscriberCode', jcl.subscriberCode );
        }
    });
    return false;
});

amplify.publish( 'registerInterest' );

从文档中,在subscribe函数中添加'return false'应该可以工作,但事实并非如此。我也尝试在订阅功能中添加以下内容。

amplify.unsubscribe('registerInterest',postRegisterData);

0 个答案:

没有答案
相关问题