【问题标题】:Backbone Redirect from before route function来自路由功能之前的主干重定向
【发布时间】:2014-02-11 13:55:14
【问题描述】:

我有一个在主干应用程序中的每条路由之前运行的函数

route: function(route, name, callback) {
        var router = this;
        if (!callback) callback = this[name];

        var beforeRoute = function() {
            var location = Backbone.history.fragment;
            var status = this.authorize();

            if(location =="" && status['logged_in'] == true){
                router.navigate("stream", {trigger: true});
            } else if(location !="" && status['logged_in'] == false){
                router.navigate("login", {trigger: true});
            }

            callback.apply(router, arguments);
        };
        return Backbone.Router.prototype.route.call(this, route, name, beforeRoute);
},

这是在我的路由器中,基本上它会检查用户是否在每次通话时登录。我的问题是

  router.navigate("stream", {trigger: true}); 

未按预期触发(应重定向到流路由)。我已经尝试过 this.navigate 并尝试设置 route = "stream" 但没有按预期重定向 - 除了重新分配 window.location 会导致页面重新加载,这对于应用程序来说并不理想。

关于如何在这个 beforeRoute 函数中重新路由有什么建议吗?

【问题讨论】:

    标签: jquery redirect backbone.js


    【解决方案1】:

    将最后一位包装在 else 块中

    } else {
        callback.apply(router, arguments);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-04
      • 2023-02-03
      • 1970-01-01
      • 2012-05-04
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      相关资源
      最近更新 更多