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' 是视图类的名称
         var RouteMenu = Backbone.View.extend ({
            el: '#routemenu',  //'el' 定义使用哪个元素作为视图引用

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

            //点击链接后,路由器调用“navigate”来更新 URL
            onClick: function( e ) {
               router.navigate('/');
            }
         });

         //'Router' 是路由器类的名称
         var Router = Backbone.Router.extend ({

            //'routes' 将带有参数的 URL 映射到路由器上的函数
            routes: {
               'route/:id' : 'defaultRoute'
            },
         });

         //'routemenu'是视图类的一个实例
         var routemenu = new RouteMenu();

         //它开始监听路由并管理可收藏 URL 的历史记录
         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.htm 文件中。

  • 在浏览器中打开此 HTML 文件。

注意 − 上述功能与地址栏有关。因此,当你在浏览器中打开上述代码时,它将显示如下。

extend example

点击此处查看演示

backbonejs_router.html