Backbonejs-router-extend

提供:Dev Guides
移動先:案内検索

BackboneJS-ルーター拡張

説明

バックボーンのルータークラスを拡張し、 Backbone.Router を継承する新しいコンストラクターを作成します。

構文

Backbone.Router.extend(properties, classProperties)

パラメーター

  • properties -ルータクラスのインスタンスプロパティを提供します。
  • classProperties -クラスのプロパティは、ルーターのコンストラクター関数に添付されます。

<!DOCTYPE html>
<html>
   <head>
      <title>Router Example</title>
      <script src = "https://code.jquery.com/jquery-2.1.3.min.js"
         type = "text/javascript"></script>

      <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min.js"
         type = "text/javascript"></script>

      <script src = "https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"
         type = "text/javascript"></script>

      <script type = "text/javascript">
        //'RouteMenu' is a name of the view class
         var RouteMenu = Backbone.View.extend ({
            el: '#routemenu', //'el' defines which element to be used as the view reference

           //defines a click event to occur on link
            events: {
               'click a' : 'onClick'
            },

           //After clicking on a link, router calls 'navigate' to update URL
            onClick: function( e ) {
               router.navigate('/');
            }
         });

        //'Router' is a name of the router class
         var Router = Backbone.Router.extend ({

           //The 'routes' maps URLs with parameters to functions on your router
            routes: {
               'route/:id' : 'defaultRoute'
            },
         });

        //'routemenu' is an instance of the view class
         var routemenu = new RouteMenu();

        //It starts listening to the routes and manages the history for bookmarkable URL's
         Backbone.history.start();
      </script>

   </head>
   <body>

      <section id = "routemenu">
         <ul>
            <li> <a href = "#/route/1">route 1 </a> </li>
            <li> <a href = "#/route/2">route 2 </a> </li>
            <li> <a href = "#/route/3">route 3 </a> </li>
         </ul>
      </section>

   </body>
</html>

出力

上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-

  • 上記のコードを extend ファイルに保存します。
  • このHTMLファイルをブラウザーで開きます。

-上記の機能はアドレスバーに関連しています。 したがって、ブラウザで上記のコードを開くと、次のように表示されます。

拡張例

link:/backbonejs/src/router/extend [デモはこちらをクリック]