循环匹配: functiononchange(onChangeEvent){varnewURL = onChangeEvent && onChangeEvent.newURL ||window.location.hash;varurl = newURL.replace(/.*#/, '');varfound =false;for(varpathinRoute.routes) {varreg =getRegExp(path);varresult =reg.exec(url);if(result && result[0] && result[0] !
routes将带参数的URLs映射到路由实例的方法上,简单的说就是为url绑定事件,其中"*actions" 等于 url(http://xx.html?a=1#ss)#右边的字符。 3,Routes映射传参数 varAppRouter =Backbone.Router.extend({//设置默认的路由规则routes:{"*actions" : "defaultRoute","search/:query/p:page" : "search","/get...
routes:{"/:route/:action":"loadView"//表明在loadView中接受2个参数:route和action,因为route和action之前都有一个冒号":"},loadView(route,action){alert(route+"&"+action);//输出:dashboard&graph,即冒号“:”匹配的是href的url中对应的字符串参数}链接为:点击查看结果 通过以上的讲解,你是否对Router的...
functiononchange(onChangeEvent){varnewURL=onChangeEvent&&onChangeEvent.newURL||window.location.hash;varurl=newURL.replace(/.*#/,'');varfound=false;for(varpathinRoute.routes){varreg=getRegExp(path);varresult=reg.exec(url);if(result&&result[0]&&result[0]!=''){varhandler=Route.routes[path]...
routes : { '':'main', 'topic':'renderList', 'topic/:id':'renderDetail', '*error':'renderError' }, main :function() { console.log('应用入口方法'); }, renderList :function() { console.log('渲染列表方法'); }, renderDetail :function(id) { ...
var route, routes = _.keys(this.routes); while ((route = routes.pop()) != null) { this.route(route, this.routes[route]); } }, route函数是把路由处理成正则表达式形式,然后调用history.route函数进行绑定,history.route函数在网址每次变化的时候都会检查匹配,如果有匹配就执行回调函数,也就是下文Ba...
定义Router至少需要一个Router和一个函数来映射特定的URL,而且我们需要记住,在Backbone中,#标签后的任意字符都会被Router接收并解释。 下面我们来定义一个Router: var AppRouter = Backbone.Router.extend({ routes: { "*actions": "defaultRoute" // 匹配 http://example.com/#anything-here } }); ...
Router.extend({ routes: { "games/:gameId/storefronts": "showStorefronts" }, showStorefronts: function (gameId, storefrontId) { /*...*/ }, }) // Instantiated an instace of each router // You can choose to keep references to your routers if necessary new GamesRouter(); new ...
routes: { "index" : "index", "task/:id": "task", "*acts": "tasklist" }, index: function() { alert("index"); }, tasklist: function(action) { alert(action); }, task: function(id) { alert(id); } }); var app = new AppRouter; ...
routes: { "*actions" : "defaultRoute" }, defaultRoute : function(actions){ alert(actions); } }); var app_router = new AppRouter; Backbone.history.start(); //2、既然是对url进行匹配那么它应该不仅仅只是简单的静态匹配,应该具有传递参数的功能,所以下面再来一个动态的router的例子. ...