backbone.js 是否有办法处理“onExit”?对于路线/控制器?

发布于 2024-12-20 15:02:46 字数 129 浏览 1 评论 0原文

基本上,当用户使用 /#/blah/blah 浏览我的网络应用程序时,我想要一个事件侦听器来侦听某人“离开”页面并转到另一个页面的时间。

当有人离开页面时,我想知道,这样我就可以销毁我创建的内容的实例。

Basically, when users navigate through my web app using /#/blah/blah, I want an event listener that listens to when someone has "left" a page, and gone on to another page.

When someone leaves a page, I want to know, so I can destroy the instances of stuff I've created.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↘紸啶 2024-12-27 15:02:46

您可能对 此相关问题感兴趣,我的回答可能会有所帮助。本质上,答案是否定的,不存在任何“exit”事件;您必须监听新的 "route:" 事件。没有通用的 "route" 事件,但您可以绑定到所有路由器事件(我认为,默认情况下,这些都应该是路由),可能会检查事件中的路由名称以使确保销毁现有实例是适当的,例如:

router.bind("all", function(evt) {
    var routeName = evt.split(':').pop();
    if (needsRefresh(routeName)) {
        destroyMyObjects();
    }
});

You might be interested in this related question, and my answer there might be helpful. Essentially, the answer is no, there isn't any "exit" event; you'd have to listen for new "route:<some-route>" events. There isn't a generic "route" event, but you could bind to all router events (I think, by default, these should all be routes), possibly checking the route name in the event to make sure it's appropriate to destroy existing instances, something like:

router.bind("all", function(evt) {
    var routeName = evt.split(':').pop();
    if (needsRefresh(routeName)) {
        destroyMyObjects();
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文