Requirejs 当我第二次实例化视图时,视图事件被设置两次
这是我的项目架构问题——这是我的第一个主干项目,我可能做错了什么 在我的所有项目路由回调中,我有:Requirejs 当我第二次实例化视图时,视图事件被设置两次,requirejs,Requirejs,这是我的项目架构问题——这是我的第一个主干项目,我可能做错了什么 在我的所有项目路由回调中,我有: myroute: function() { this.currentView = new MyCustomView(); }, mysecondroute: function() { this.currentView = new MySecondView() }, //... 所以在所有路由回调中,我实例化了一些视图。此视图具有initialize方法,该方法调用render方
myroute: function() {
this.currentView = new MyCustomView();
},
mysecondroute: function() {
this.currentView = new MySecondView()
},
//...
所以在所有路由回调中,我实例化了一些视图。此视图具有initialize方法,该方法调用render方法。除了每次实例化同一个视图时,所有视图事件(在事件:{}
中声明)都是“绑定”的之外,它是有效的。所以,当我访问同一个路由两次时,与此路由对应的视图事件将被触发两次
也许我不应该在每个路由调用上实例化新视图,但我如何才能做到这一点呢?我的意思是标准是什么?也许我应该以某种方式卸载当前视图-有什么方法可以做到这一点吗?我认为您必须添加一个方法来在关闭视图时解除所有事件的绑定 像这样
close : function () {
//your code to clean everything before closing the view
this.remove();
this.unbind();
}
因此,下次调用视图时,将在视图初始化期间添加事件,这就是为什么要调用两次事件的原因。initialize方法将事件绑定到.el元素。你需要确保在某个时候解开它们