2012-03-22 6 views
2

私はbackbone.jsを初めて利用しています。私のユーザーがhttp://www.foo.com/#aboutにあり、http://www.foo.com/#profileに行くリンクをクリックしているとします。しかし、彼がログインしていない場合は#profileに連れて行きたくはありません。ログインしていなければ、#aboutというブックマークは変更しないでください。。これを達成する方法を知ることができません。助けが必要だろう。ありがとう。Backbone.js - 新しい訪問に失敗した場合にブックマークを変更する方法

+0

私は申し訳ありませんが、あなたのユーザーがそれをクリックして許可されていない場合は、なぜあなたは#profileするためのリンクがありますか?リンクを無効にすることをハックするのではなく、最初にそれを表示しないのはなぜですか? – ggozad

+0

#profileリンクをクリックすると、ログインダイアログが表示され、正常にログインした場合にのみ#profileに移動します。 – Sanjay

答えて

1

私はバインドプロフィールリンククリックイベントにあなたを示唆し、ナビゲーション履歴を管理するためにBackbone.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; 
    } 
} 
+0

ありがとうございます。私は単一のページアプリケーションをしようとしていると、他のパターンも歓迎され、最高のパターンを選ぶのが大好きです – Sanjay

関連する問題