我已经搜索了互联网寻找破坏旧视图的方法。 有功能可以做到这一点,但是,我不知道如何触发它们。理想情况下,在关闭视图时会有一种触发破坏的方法。 我找不到如何触发该特定事件的方法。如何删除旧的骨干视图
回答
你应该叫view.remove()
触发其销毁的文件http://backbonejs.org/#View-remove
例如,在指定的,如果你有:
var myView = Backbone.View.extend({
initialize: function() {
...
},
render: function() {
...
}
});
您可以稍后致电myView.remove()
前提是你必须myView
提供一个参考。
如果您使用listenTo
(推荐)方法而不是on
侦听器,则此方法还应删除与该视图绑定的任何事件侦听器。您也可以添加view.off()
以确保事件被删除。
这个古老而神奇的作品by Derick Bailey在解释这个问题以及如何解决问题方面做得非常出色。由于莫妮卡正确地提出这依赖于view.remove()
但你可以更新你的路由器来破坏你现有的观点 - 尝试类似的东西
if (currentView) {
currentView.remove();
currentView = newView();
}
我试图使用 if(currentView)currentView.remove(); currentView = newView(); } –
我试图把一个this.currentView = null在初始化我的路由器,在清理函数中,没有输入if语句,就像if(this.currentView)不起作用.. –
在某个点您需要将this.currentView更新为您想要删除的视图。在您的各个骨干路由中执行此操作可能很有意义,然后创建一个单独的函数,其中包含您可以在每次导航到新骨干路由时调用的if语句。 –
- 1. 骨干删除视图删除el
- 2. 骨干删除视图和DOM节点
- 3. 骨干 - 防止视图被删除后
- 4. 从路由器删除骨干视图
- 5. 如何从视图骨干
- 6. 删除骨干视图的所有事件侦听器
- 7. 在骨干js中重新创建已删除的视图
- 8. 骨干:查看删除/删除
- 9. 骨干删除模型
- 10. 骨干删除行ID
- 11. 骨干视图DOM元素除去
- 12. 导航视图骨干不删除模型
- 13. 删除骨干视图但DOM节点数不断增加?
- 14. 如何扩展骨干视图
- 15. 如何正确销毁骨干视图?
- 16. 如何将Stripe放入骨干视图?
- 17. 创建视图的骨干视图
- 18. 骨干:视图中的视图列表
- 19. 骨干叶离散DOM元素,无论我如何删除视图
- 20. 骨干视图不显示
- 21. 骨干视图collection.each()bug?
- 22. 骨干JS追加视图
- 23. 骨干主视图控件
- 24. 骨干视图问题
- 25. 骨干three.js视图绑定
- 26. 骨干基本视图
- 27. 骨干视图嵌套
- 28. 骨干视图和window.getSelection
- 29. 骨干子视图事件
- 30. 骨干视图继承
我想触发毁灭时,我了解它们到一个新的观点,所以view.remove函数必须在离开旧视图和输入新视图之间触发。这是我的问题,我不知道何时何地使用remove函数。我希望这会帮助你理解这个问题。 –
你应该参考我在答案底部发布的链接。一种方法是修改Backbone.View类以包含close方法。另一种方法是创建一个父类,以使您的所有视图继承自支持关闭事件功能的视图。最后,可以重写Backbone.Router中的导航方法来执行活动视图的销毁,然后调用原始导航函数或使用router.route手动设置路由,并使用删除活动视图的回调函数。 –
我试图通过创建一个与现有视图关联的全局变量来销毁路由器中的现有视图,并在创建与该全局变量新关联的新视图之前销毁该视图,但似乎不起作用 –