Router的使用
在Backbone中,Router是用于帮助管理应用状态,以及关联url和应用的事件。通过URL片段的hash-tags,或者使用浏览器的pushState或者History API。一个应用中通常至少会有一个路由来映射,一个URL路由到一个函数,这个函数决定了当用户到达了指定路由之后应该做什么,语法:"login":"Login"。下面我们通过代码看下理解一下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<title>Router的测试</title>
<script type="text/javascript" src="js/zepto.js"></script>
<script type="text/javascript" src="js/underscore.js"></script>
<script type="text/javascript" src="js/backbone.js"></script>
<style type=""></style>
</head>
<body>
<script type="text/javascript">
var MyRouter = Backbone.Router.extend({
routes:{
"":"index",
"login/*page":"login"
},
index:function(){
console.info("调用的是index...");
},
login:function(params){
console.info("调用的是login...") ;
console.info(params) ;
}
}) ;
var myRouter = new MyRouter();
Backbone.history.start();
</script>
</body>
</html>
routes是将带参数的URLs映射到路由的实例的方法上,这个与View中事件键值对的写法非常相似。路由可包含参数,:params。在斜杠"/"之间匹配URL组件。路由也是支持通配符,如:“*path” ,可以匹配多个URl组件。例如上面的代码片段,在浏览器中直接打开的话,那么此时是空字符串匹配,会调用index的方法。