[关闭]
@52fhy 2016-01-22T16:46:32.000000Z 字数 967 阅读 637

08-backbone路由--逻辑里触发路由

backbone


有时候,我们希望能在逻辑里触发路由规则。

用到的方法:

  1. router.navigate(url, options)
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>title</title>
  5. <script src="lib/jquery-1.10.2.js"></script>
  6. <script src="lib/underscore.js"></script>
  7. <script src="lib/backbone.js"></script>
  8. </head>
  9. <body>
  10. <a href="#test">testActions</a>
  11. <a href="#/posts/120">Post 120</a>
  12. <a href="#/download/user/images/hey.gif">download gif</a>
  13. <script>
  14. var AppRouter = Backbone.Router.extend({
  15. //匹配#标签之后内容的方法,有两种:一种是用“:”来把#后面的对应的位置作为参数;还有一种是“*”,它可以匹配所有的ur
  16. routes: {
  17. "posts/:id" : "getPost",
  18. "download/*path": "downloadFile",
  19. "test": "test",
  20. },
  21. getPost : function (id) {
  22. console.log(id);
  23. },
  24. downloadFile: function( path ){
  25. console.log(path); // user/images/hey.gif
  26. },
  27. test: function () {
  28. //逻辑中手动触发router
  29. //navigate后面的两个参数:trigger表示触发事件,如果为false,则只是url变化,并不会触发事件,replace表示url替换,而不是前进到这个url,意味着启用该参数,浏览器的history不会记录这个变动
  30. app_router.navigate("/posts/" + 404, {trigger: true, replace: true});
  31. }
  32. });
  33. var app_router = new AppRouter;
  34. Backbone.history.start();
  35. </script>
  36. </body>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注