5

TL; DR如何临时禁用视图以便我可以安全地加载另一个视图,然后安全地关闭加载的视图以返回到原始视图?Backbone.js - 暂时禁用(事件中)查看

我有以下情形:

  1. 用户打开/search它加载SearchView
  2. 用户单击按钮执行搜索。
  3. SearchView内部收集充满数据,UI更新以反映这一点。
  4. 用户单击结果项目。
  5. SearchView已禁用(只需要禁用events?)。
  6. ItemView已加载,显示项目详细信息。
  7. 用户单击按钮关闭ItemView
  8. SearchView重新启用。

实现第5点和第8点的最佳方法是什么?我想叫SearchView.unbind()(对于第5点)和SearchView.bind()(对于第8点)。

红利:如果解决方案是堆叠式的,那会更好。即视图A负载查看B当查看C被关闭,查看B的恢复,他们可以载入视图C.等

+0

你为什么不使用'router.navigate'将用户移动到具有他们选择的数据的'ItemView'中并卸载'SearchView'。这将使它不必解绑任何东西。 – tkone 2012-03-15 17:25:18

+0

这也会带来额外的好处,用户可以点击返回到项目详细信息的搜索结果 – tkone 2012-03-15 17:26:57

+0

@tkone我使用'router.navigate'来更新URL,但不能摧毁'SearchView'作为搜索结果使用无限滚动显示。滚动位置必须保持。 – wiradikusuma 2012-03-16 14:27:24

回答

9

尝试调用SearchView.undelegateEvents()为5点,然后SearchView.delegateEvents()为点8