首页 > 代码库 > Backbone学习记录(6)
Backbone学习记录(6)
路由
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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。