【发布时间】:2014-02-10 16:29:35
【问题描述】:
我正在运行一个主干脚本,我可以在其中在视图之间来回切换。 使用带有简单路由器导航脚本的下一个和上一个按钮。
在步骤 1 的视图中,我使用此脚本转到下一页:
nextStep: function() {
//get referrerTypes
OF.getReferrerTypes();
OF.getClinics();
OF.router.navigate('step/2', {trigger: true});
}
现在这是我的问题。当我导航到 step/2 并返回 step/1 时(也是 router.navigate) 不知何故, step/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();
});
}
有人可以帮忙吗? 我真的只需要运行一次函数。
提前致谢!
【问题讨论】:
-
为什么不直接调用 step1View.render() 而不删除或重新实例化?
标签: javascript jquery backbone.js backbone-views backbone-routing