Backbone.js-如果访问新书签失败,如何保持书签不变

Backbone.js-如果访问新书签失败,如何保持书签不变,backbone.js,Backbone.js,我是新手,有一个疑问。假设我的用户在http://www.foo.com/#about,并单击要转到的链接http://www.foo.com/#profile. 但如果他没有登录,我不想把他带到个人资料。因此,如果他没有登录,书签“关于”不应该更改。无法知道如何实现这一点。我需要帮助。谢谢。我建议您将单击事件绑定到配置文件链接中,并在其中添加逻辑,同时使用主干.Router管理导航历史记录。比如: // code simplified and not tested App.Router = n

我是新手,有一个疑问。假设我的用户在http://www.foo.com/#about,并单击要转到的链接http://www.foo.com/#profile. 但如果他没有登录,我不想把他带到个人资料。因此,如果他没有登录,书签“关于”不应该更改。无法知道如何实现这一点。我需要帮助。谢谢。

我建议您将单击事件绑定到配置文件链接中,并在其中添加逻辑,同时使用
主干.Router
管理导航历史记录。比如:

// code simplified and not tested
App.Router = new Backbone.Router.extend({
  routes: {
    "about":  "about",
    "profile": "profile",
  },

  # [...] your routes functions here
});

App.MenuView = Backbone.View.extend({
  el: "#menu",

  events: {
    "click #profile": "showProfile"
  },

  showProfile: function(){
    if( App.currentUser.logged? ) {
      App.MyRouter.navigate( "profile", {trigger: true} );
    }

    return false;
  }
}

很抱歉,如果不允许您的用户单击#profile,为什么您会有它的链接?与其随意禁用链接,为什么不首先显示它呢?比如,单击#profile链接,我会显示一个登录对话框,只有在他成功登录时才能转到#profile。谢谢。将是有益的。任何其他模式也欢迎,因为我正在尝试一个单页应用程序,并愿意选择最好的模式