我有两个主干视图类fileView和userDetails。
在Web应用程序的一个页面上,我使用fileView呈现所有文件
在另一个页面上,我使用userDetails视图显示用户详细信息,并创建fileView的新实例以列出用户文件。
在两个页面上导航后,我的事件被触发两次(一次用于filesView,一次用于userDetails.fileView)。
如何删除userDetails.fileView的事件?我阅读了文档并尝试了迄今为止没有运气的任何内容。
答案 0 :(得分:1)
而不是重新发明轮子,答案就在这里。
Derick Bailey: Managing event removal
我在所有骨干应用程序中使用此方法,但必须全额归功于Derick Bailey :)
感谢Derick!
答案 1 :(得分:1)
我认为你有两点要做到这一点:
这里有一些更详细的情报: http://addyosmani.github.io/backbone-fundamentals/#memory-management
答案 2 :(得分:1)
使用最新版本的Backbone处理事件的正确方法是listenTo()
函数。它的行为类似于常规事件侦听器,但使您调用此函数的对象知道它们正在侦听的内容。这样,一旦不再使用对象,您就可以进行自动清理(例如,当删除View时)。当然,如果需要,您可以调用stopListening()
手动触发此行为。