路由

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. Gym - 101164C - Castle KMP

    题目链接:传送门 题解: 利用KMP的fail失配数组,快速找到当前后缀与前缀的公共前缀点 #include<bits/stdc++.h> using namespace std; #pr ...

  2. 新手必备的SEO优化工具

  3. js 原型继承和class继承

    摘自http://www.liaoxuefeng.com/ 在传统的基于Class的语言如Java.C++中,继承的本质是扩展一个已有的Class,并生成新的Subclass. 由于这类语言严格区分类 ...

  4. IOS中调用系统拨打电话发送短信

    一.调用打电话界面 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat ...

  5. ES6 中的let 声明变量

    1.let是声明的是块级变量,不会污染全局,一般条件与循环中会用到: 2.let  不可以变量提升: 3.let不遵循作用域,一个作用域内如果有该变量,就不会到全局去找,也不可以在一个作用域重复声明一 ...

  6. javascript:;用法集锦

    如果是个# ,就会出现跳到顶部的情况,个人收藏的几种解决方法:1:<a href="####"></a> 2:<a href="javasc ...

  7. kentico检查当前授权用户,是否为admin角色

    https://docs.kentico.com/k11/custom-development/user-internals-and-api/checking-permissions-using-th ...

  8. codeforces B. Shower Line 解题报告

    题目链接:http://codeforces.com/contest/431/problem/B 题目意思:给出5 * 5 的矩阵.从这个矩阵中选出合理的安排次序,使得happiness之和最大.当第 ...

  9. LA-2678 (尺取法)

    题意: 在一个长度为n的序列中,找到最短的长度序列,使其和大于等于s; 思路: two pointer ,水题; Ac代码: #include <bits/stdc++.h> /* #in ...

  10. 分段控制器--UISegmentedControl 基本用法

    http://blog.csdn.net/heng615975867/article/details/43527295 http://blog.csdn.net/gf771115/article/de ...