骨干视图:函数执行多次

时间:2014-02-10 16:29:35

标签: javascript jquery backbone.js backbone-views backbone-routing

运行一个骨干脚本,我可以在视图之间往返。 使用带有简单路由器的下一个和上一个按钮导航其中的脚本。

在步骤1的视图中,我使用此脚本转到下一页:

nextStep: function() {

    //get referrerTypes
    OF.getReferrerTypes();
    OF.getClinics();

    OF.router.navigate('step/2', {trigger: true});

}

现在这是我的问题。当我导航到步骤/ 2并返回步骤/ 1(也是router.navigate) 不知何故,步骤/ 1中的函数被加载两次。

所以当我第二次进入step / 2时,它运行nextStep函数两次。 或者当我第二次前进和后退时,它会运行nextStep函数三次。

我尝试通过在路由器中执行step1view.remove来解决此问题。 我甚至做了删除。然而,这根本没有用。

以下是路由器中加载视图的脚本

goToStep1: function() {
    require(['./models/step1Model', './views/step1View'],function(Step1Model, Step1View) {
        if (step1View) {
            step1View.remove();
            delete step1View;
        }

        step1View = new Step1View;
        step1View.render();

    });

}

有人可以帮忙吗? 我真的只需要运行一次这个函数。

提前致谢!

1 个答案:

答案 0 :(得分:1)

尝试取消发布事件:

step1View.remove();
step1View.undelegateEvents();