我面临着看起来像僵尸参考案例的情况。
首先,这是我正在使用的代码。
在这里,您将找到我的用户详细信息管理器布局要点
相反,可以在此处找到控制器
操作流程如下:
- 管理员在点击控制器上调用“manageUsers”的路由时访问用户列表。
- 管理员单击用户行并触发事件“users:selected”并且侦听器接收要使用的用户实例。
- DetailsLayout 在应用程序的主布局中被实例化和呈现。特别是在其“内容”区域。
- 处理用户详细信息表单的视图也被实例化并呈现在 DetailsLayout 的“dettagli”区域内。
- 此时,管理员有兴趣管理此用户的笔记。因此,他单击标记为“notes”的选项卡,便笺列表将呈现在 DetailsLayout“note”区域中。
- 单击管理员想要使用的注释会触发事件“notes:selected”,它将注释实例传递给适当的事件处理程序 (DetailsLayout.showNote)。
此时,一旦管理员单击触发 DetailsLayout.showUsers 的链接,该链接又触发上述控制器侦听的事件“users:index”,他将返回到上面列表的第 1 点。
重复整个过程直到第 5 点按预期工作,但是,一旦管理员选择要工作的注释,调试器就会显示有关未定义 DetailsLayout 区域“注释”的错误。
逐步运行代码,我发现在第二次运行时,触发的事件正确绑定到 DetailsLayout 的正确实例,但第 6 点仍绑定到第一次传递时使用的实例。
上面的代码显示,每次显示用户的详细信息时,都会创建一个新的 DetailsLayout 实例。难道这还不足以保证没有僵尸还在附近吗?如果我从backbone.marionette 文档中没记错的话,每次layout.region.show() 被击中时,它都会关闭前一个视图(解除绑定事件和所有其他事件)并附加新的passwed 视图。
我做错了什么?
在此先感谢您的帮助。问候
附言
Backbone.marionette 版本为 0.8.4
Backbonejs 版本为 0.9.2