1

这是我的项目架构问题——这是我的第一个主干项目,我可能做错了什么。

在我所有的路由回调项目中,我都有:

myroute: function() {
    this.currentView = new MyCustomView();
},

mysecondroute: function() {
    this.currentView = new MySecondView()
},
//...

因此,在所有路由回调中,我都会实例化一些视图。此视图具有调用渲染方法的初始化方法。events: {}除了每次实例化同一个视图时所有视图事件(在 所以当我访问同一条路线两次时,对应于这条路线的视图事件会被触发两次......

可能我应该在每个路由调用上实例化新视图 - 但我该怎么做呢?我的意思是标准是什么?也许我应该以某种方式卸载当前视图 - 有什么方法可以做到这一点吗?

4

1 回答 1

0

我认为您必须添加一种方法来取消绑定所有事件以关闭视图

像这样

close : function () {
   //your code to clean everything before closing the view
   this.remove();
   this.unbind();
}

所以下次调用视图时,将在视图初始化期间添加事件,这就是为什么你有两次调用事件的原因。初始化方法将事件绑定到 .el 元素。您需要确保在某些时候解除绑定。

于 2013-02-20T20:19:48.187 回答