地址中的参数

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

在上一个视频里我们定义了一个固定形式的路由,就是 notes ... 很多时候,我们需要在路由的地址里面加上参数 ... 比如,想让用户访问单个笔记内容的时候,你可能需要使用一个 notes 斜线 加上笔记 id 的形式的地址来访问某个笔记的内容 ... 在这种形式的地址里面,笔记的 id 就应该是这个路由里面要用到的参数 ...

Backbone 的路由里面,定义一个普通的参数可以使用冒号加参数名字的形式 (:param)... 它可以表示在地址里面,斜线之间的一部分 ...

另外,也可以使用 splat 形式的参数,这可以表示多个部分的地址 ... 下面,我们还是通过几个演示来理解一下地址中的参数。

在这个路由器的 routes 属性里面,用一个逗号分隔一下 .. 另起一行,再去定义一个路由 ... 这个地址的形式可以是 notes 斜线 ... 加上一个冒号 id ...

处理它的函数是 show ...

'notes/:id' : 'show'

在这个路由里面,冒号 id 就是一个参数 ... 在处理它的 show 这个函数里面,可以接受这个 id 作为它的一个参数 ... 这样在函数里面,可以利用这个参数 ... 比如根据笔记的 id 号,从数据库里查询出这条笔记的具体的内容。

在下面,我们再去定义这个 show 函数 .. . 然后把路由里面的 id 参数,作为这个函数的一个参数传递进来 ... .. 为了测试,我们还是先在控制台上输出一行文字 .. console.log ... 笔记 .. 加上 id 号 ...

show: function(id) {
console.log('笔记:' + id);
}

另起一行,下面,我们可以再根据这个 id 号,从集合里找到这个模型,然后用模型的视图渲染一下,再显示到页面上。

得到这个模型,可以使用集合的 get 方法 ... 把 id 号交给这个方法 ...

var note = noteCollection.get(id);

然后再根据这个模型去创建一个视图 ...

var noteView = new NoteView({model: note});

最后再把渲染之后的视图内容显示到页面上。

jQuery('#note_list').html(noteView.render().el)

保存 ... 再去预览一下 ...

输入地址 ... #notes 斜线 ... 再加上笔记的 id 号 ,1,... 在控制台上会显示 笔记 1 ... 同时在页面上,也会显示出这条笔记的内容。

再换一下这个地址上的笔记的 id 号 .. 2 ... 在页面上会显示 id 号是 2 的这条笔记的内容。

处理这个地址的函数会接收到 notes 后面的这个 id 号 ...

再试一下其它的 ... 在 id 号后面再加上一个斜线 .. #notes/3/

这回没有在控制台上显示对应的内容 ... 因为在这个地址的最后,加上了一个斜线 .... Backbone 会区分出来 ... 带斜线和不带斜线的地址会认为是两种形式的地址 ...

在这个最后的斜线后面,再加上一小段东西 ... #notes/3/bookmark

同样,也是不会显示对应的内容 ... 因为这也属于另一种形式的地址 ... 在定义路由的时候,可以加上这小段内容 ... 也就是这个斜线 bookmark ...

地址中的参数《 Backbone 基础 》

统计

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

社会化网络

关于

微信订阅号

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