@52fhy
2016-01-22T16:46:32.000000Z
字数 967
阅读 637
backbone
有时候,我们希望能在逻辑里触发路由规则。
用到的方法:
router.navigate(url, options)
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>title</title>
<script src="lib/jquery-1.10.2.js"></script>
<script src="lib/underscore.js"></script>
<script src="lib/backbone.js"></script>
</head>
<body>
<a href="#test">testActions</a>
<a href="#/posts/120">Post 120</a>
<a href="#/download/user/images/hey.gif">download gif</a>
<script>
var AppRouter = Backbone.Router.extend({
//匹配#标签之后内容的方法,有两种:一种是用“:”来把#后面的对应的位置作为参数;还有一种是“*”,它可以匹配所有的ur
routes: {
"posts/:id" : "getPost",
"download/*path": "downloadFile",
"test": "test",
},
getPost : function (id) {
console.log(id);
},
downloadFile: function( path ){
console.log(path); // user/images/hey.gif
},
test: function () {
//逻辑中手动触发router
//navigate后面的两个参数:trigger表示触发事件,如果为false,则只是url变化,并不会触发事件,replace表示url替换,而不是前进到这个url,意味着启用该参数,浏览器的history不会记录这个变动
app_router.navigate("/posts/" + 404, {trigger: true, replace: true});
}
});
var app_router = new AppRouter;
Backbone.history.start();
</script>
</body>