@52fhy
        
        2016-01-22T08:46:32.000000Z
        字数 967
        阅读 700
    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({//匹配#标签之后内容的方法,有两种:一种是用“:”来把#后面的对应的位置作为参数;还有一种是“*”,它可以匹配所有的urroutes: {"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>
