javascript - 防止用户导航回 Backbone 的特定路线

标签 javascript backbone.js routes

我是主干网的新手,我想使用主干网路由器实现一个非常简单的身份验证。

我实际上只在我的应用程序中使用主干网的路由器。当我启动应用程序时,我会呈现一个登录 View ,并且还会初始化主干路由器 (Backbone.history.start();)

如果登录成功,我调用 router.navigate('mainmenu', { trigger: true, replace: false }); 导航到我呈现主菜单的新路径,但是当我单击浏览器的后退按钮,我导航回到登录 View 。

在导航到上一个 View (登录 View )之前,我想询问用户是否要先注销,如果注销过程顺利,那么他将被重定向到登录 View 。

我怎样才能做到这一点?我检查了其他几个问题,但答案对于我的用例来说太复杂了。我只是想阻止用户在登录后导航回特定 View 。

最佳答案

@Dethariel 感谢您的回答。我使用内置的 Backbone 路由器成功地实现了某种 session 。我从 Backbone.Router 执行方法中的小示例片段开始 backbone router execute snippet并做了类似下面的事情:

var Router = Backbone.Router.extend({
  // define routes and calkbacks
  // ....
  // define routes and calkbacks

  execute: function(callback, args) {
  // execute will be called before the callback for each specific route
  // get the next route in here
     var nextRoute = Backbone.history.fragment;
     if(user.LoggedIn()){
         // check if nextRoute is '#login*'. I could make other checks as well
         if(nextRoute.indexOf('login')>-1)
             prompt('Log out?');
         // else continue routing
         else if (callback) callback.apply(this, args);
     }
     else if (callback) callback.apply(this, args);
  }
});

这是非常简单的,我不认为这是最好的或安全的方式,但对我来说这是一个很好的起点。

关于javascript - 防止用户导航回 Backbone 的特定路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501355/

相关文章:

javascript - 根据放置正则表达式区分相似值

javascript - 调试 JS/CoffeeScript 代码 : Events, 回调等

javascript - 使用 jquery 使 div 文本在 5 秒后消失?

javascript - 谷歌地图上突然报错 : TypeError: _. x is not a function

javascript - Backbone Marionette : Router Not Routing Correctly

javascript - 保存 Backbone.js 模型数据的方法?

spring - @Synchronized似乎无法同步访问共享资源以进行对Spring Webserver的异步调用

javascript - 触发同位置路由

asp.net-mvc - 使用asp.net MVC和RouteUrl创建URL

javascript - 在 D3.js 中调用函数作为数据