2012-04-13 10 views
0

現在、いくつかの通常のページを持つルートオブジェクトがあります。また、最初のパラメータがユーザ名である最上位ルートも追加したいと考えています。Backbone.jsルータの動的な最初のパラメータ

routes : { 
    '/'  : 'main', 
    '/login' : 'login', 
    '/about' : 'about', 
    '/create' : 'create', 
    '/:username': 'getUser' //something like this 
    '*actions' : 'defaultHandler' 
} 
  1. 私はこれをどのように実現するのでしょうか?
  2. ユーザー名のルートを追加するのは間違いありませんが、ページやユーザーが見つからないときにはアクションに戻ってしまいますか?

答えて

1

あなたが「約」または「作成」と呼ばれるユーザーを持っている場合どうなりますか?あなたのルートに名前を付けて問題を回避してください:

次に、誰も「a」をユーザ名として使用していないことを確認するだけです。また、この方法では、ルートを追加すると、将来の競合を防ぐことができます。

1

私が正しく理解していれば、あなたはそこにいます。ちょうどあなたのgetUser関数のパラメータとしてusernameを追加:あなたの最後の二つの経路の両方が、何でも一致させることができるので、

getUser: function(username) { /* do stuff */ } 

は、しかし、問題があります。ユーザを識別するために、プレフィックスを使用して、最終的なスプラットと一致するすべてのものからユーザルートを区別することができます。このような何かで十分です:

routes : { 
    // ... 
    '/users/:username': 'getUser' 
} 
関連する問題