路由

backbone将路由规则和一个方法名绑定到一起,来控制单页的hash,以及单页的前进后退。

var UserRouter = Backbone.Router.extend({

  routes: {
"": "main",
"help": "help", // #help
"search/:query": "search", // #search/page
"search/:query/p:page": "search", // #search/page/p1
"*error": "error",
},
main:function(){
console.log("main");
},
help: function() {
console.log("help");
}, search: function(query, page) {
console.log(query,page);
},
error:function(error){
console.log(error,"is a error hash!");
}
});
var user_router=new UserRouter(); Backbone.history.start();//开启前history监控hashchange //http://localhost/backbone_test/backbone_test.html
//=> main //http://localhost/backbone_test/backbone_test.html#help
//=> help //http://localhost/backbone_test/backbone_test.html#search/page
//page null //http://localhost/backbone_test/backbone_test.html#search/page/p1
//page 1 //http://localhost/backbone_test/backbone_test.html#other
//other is a error hash!

路由规则

search/:query中 : 表示查询,,当输入#search/page 这里的page就作为参数传给与规则search/:query绑定的函数中。

*表示匹配0或多个字符 ,如果上面的例子中没有这个"": "main"规则,url后面输入#,控制台就会显示 null "is a error hash!" ,因为 * 匹配了0个字符。
#之后的所有字符,都可以作为一个整体字符串的参数传给和该规则绑定的方法中。*也可以和:混用。比如对于规则"*search/:query/error": "error",url后面输入“#search/page/url”,“search/page/url”就作为参数传给了error方法。

Backbone.history.start()或Backbone.history.start({pushState: true})用于开启history监控,这样就能应用路由规则了。

Backbone学习记录(6)的更多相关文章

  1. Backbone学习记录(7)

    事件委托 <form> <input type="text" class="txt"> <input type="but ...

  2. Backbone学习记录(5)

    数据与服务器 var User=Backbone.Model.extend({ defaults:{ name:'susan', age:18 }, url:'/user'//数据提交的路径 }); ...

  3. Backbone学习记录(4)

    事件绑定  on()方法 调用格式:object.on(event, callback, [context])"change" — 当attributes变化时"chan ...

  4. Backbone学习记录(3)

    创建视图 同前面创建模型和集合的方式一样,Backbone.View.extend()即可创建视图 var UserView=Backbone.View.extend(); var view1=new ...

  5. Backbone学习记录(2)

    创建一个集合 1)new Backbone.Collection()方式 var user=new Backbone.Model({'name':'susan'}); var list=new Bac ...

  6. Backbone学习记录(1)

    去年买的<基于MVC的javascript Web富应用开发>,拖到现在还没看完,作者介绍了三个MVC框架,Spine ,backbone和javascriptMVC.1和2在国内的流行度 ...

  7. Backbone 学习笔记

    Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用. 借助Backbone 我们可以使用REST的方式来最小化客户 ...

  8. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  9. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

随机推荐

  1. lc.exe 已退出 代码为 -1

    地址:http://jingyan.baidu.com/article/91f5db1bd0ace31c7f05e321.html

  2. 关于 SWT 的UI线程和非UI线程

    要理解UI线程,先要了解一下“消息循环”这个概念.链接是百度百科上的条目,简单地说,操作系统把用户界面上的每个操作都转化成为对应的消息,加入消息队列.然后把消息转发给对应的应用程序(一般来说,就是活动 ...

  3. oracle中的exists和not exists和in用法详解

    in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. not exists:做NL,对子查询先查,有个虚表,有确定值,所以就算子查询有NULL ...

  4. jquery1.9是最后支持IE678

    bootstrap  需要 jquery 1.9.1或更高 jquery1.9是最后支持IE678

  5. 接口_简单get接口_第一个接口

    import flask,json # print(__name__) ##__name__代表当前这个python文件 server = flask.Flask(__name__) #把咱们当前的这 ...

  6. apt-get update 问题 及gcc高亮

    一 gcc高亮 gcc 高亮有好几种方法. 参考 http://www.cokco.cn/thread-39909-1-1.html 这个教程: (1) git clone https://githu ...

  7. 在canvas标签和style中定义width和height

    在canvas标签中定义width.height跟在style中定义width.height是不同的.canvas标签的width和height是画布实际宽度和高度,就是在这个上面绘制图形.style ...

  8. 最小生成树,并查集的思想 nyoj1239

    #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ...

  9. OpenCV——PS滤镜算法之 Ellipsoid (凸出)

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  10. BZOJ_2253_[2010 Beijing wc]纸箱堆叠 _CDQ分治+树状数组

    BZOJ_2253_[2010 Beijing wc]纸箱堆叠 _CDQ分治+树状数组 Description P 工厂是一个生产纸箱的工厂.纸箱生产线在人工输入三个参数 n p a , , 之后, ...