路由 - Router

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

在应用程序里面,你可能希望用户在访问特定的地址的时候,得到特定的资源,用户可以收藏,分享这些特定资源的地址,而且可以前进或者后退浏览的这些资源。

这就需要我们在应用里面去定义路由。也就是,你事先设计好资源的地址,用户在访问这些地址的时候,应用程序会去执行对应的动作,同时也会发生特定的事件。你可以利用这些动作或者事件,去做一些事情,比如找出正确的资源给用户。

定义路由

下面,我们先去看一下怎么样定义 Backbone 的路由器。

先给要定义的路由器起个名字,这里我们可以叫做 NoteRouter ... Router 就是路由器的意思 ... 然后让它去继承 Backbone 的 Router ..

var NoteRouter = Backbone.Router.extend({});

在这里,可以去设置一下路由器的 routes 属性 ... 属性的值是一个对象 ... 在这个对象里,我们可以去添加应用程序的路由 ... 还有处理这个路由要用到的函数 ... 这里我们先添加一个叫 notes 的路由 ... 处理它的函数可以是 index ... 这些东西都是我们自己定义的名字 ...

routes: {
'notes' : 'index',
}

这样在下面,需要再去定义一下这个 index 函数 .. 可以把它作为这个路由器的一个方法 ... 函数在对象里面就叫作方法 ... 在它里面,可以把之前我们创建的集合视图里的 el 属性,显示到页面上,也就是一个笔记列表 ...

jQuery('#note_list').html(noteCollectionView.el)

接着在控制台上可以再输出点文字 .. 用一个 console.log ... 输出的文字是 笔记列表 ...

index: function() {
console.log('笔记列表');
}

这样我们就为应用定义好了一个路由 ... 名字是 notes ... 处理它的函数叫做 index,index 要做的事就是在控制台上输出 笔记列表这几个字 .. 也就是,当用户访问 notes 这个地址的时候,就会在控制台上输出这几个字 ...

在这个路由器的下面,我们需要再去实例化一下它 ...

var noteRouter = new NoteRouter;

然后我们需要再使用一个 Backbone 的 history ,start ... 它的作用就是告诉 Backbone ,开始监视 hashchange 事件。

Backbone.history.start();

演示

保存 ... 下面到浏览器上去试试 ..

先打开应用的首页 ... 再打开控制台 ... 然后再输入 notes ... 注意 ... Backbone 默认会使用 hash fragments 的地址形式 ... 也就是在地址上先得加上一个 # 号 ... 接着才是具体的在路由器里定义的地址 ...

http://localhost:8888/backbone/#notes

在控制台上,会显示 笔记列表 这个字 ... 这是因为我访问了 notes 这个地址,会触发执行处理它的函数 ... 这个函数做的事,就是在控制台上显示这几个字儿 ...

路由 - Router《 Backbone 基础 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点