运行一个骨干脚本,我可以在视图之间往返。 使用带有简单路由器的下一个和上一个按钮导航其中的脚本。
在步骤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();
});
}
有人可以帮忙吗? 我真的只需要运行一次这个函数。
提前致谢!
答案 0 :(得分:1)
尝试取消发布事件:
step1View.remove();
step1View.undelegateEvents();