在单页应用程序中清除视图中的所有项目

Clear all items from view in single page app

我有一个由数据库支持的单页应用程序(用 Backbone 编写),其中默认(目前)是列出一定数量的项目,但是,我希望提供该选项按日期或其他标准排序。因此,我需要能够清除屏幕上的所有项目并在数据库中查询符合条件的项目。

问题:在从数据库重新加载新项目之前,清除屏幕上已有的所有视图的一般策略是什么?

请注意,在 Backbone TodoMVC 应用程序中,策略是简单地使用 css visible/hidden 在不同状态之间切换,但如果应用程序由db 有很多项目,最初只显示 30 个。

如果您使用的是 jquery,您可以使用其 ID

清除 div 的内容
$("#divID").empty();

然后为您从数据库中检索到的每个条目附加某种子元素

$("#divID" ).append("<p>Element #1</p>");

如果您也想删除事件,则需要取消委托事件,就像您没有这样做一样,并且您创建了一个新的 Backbone 视图,旧视图仍会监听操作,如果你有一个点击回调将被触发为新的和旧的

destroy:=>
  @.undelegateEvents() 
  @$(el).empty()