2013-05-26 113 views
0

我是backbone.js的新手,寫我的第一個路由器。我有如下的骨幹路由器,backbone.js螢火蟲路由器錯誤

<html lang="en" class="no-js"> 
    <head> 
     <meta charset="utf-8"> 

     <title>My First Backbone Tutorial</title> 
     <meta name="author" content="David Goodlad <[email protected]>"> 

     <link rel="stylesheet" href="style/screen.css" media="screen, projection"> 
     <link rel="stylesheet" href="style/fancypants.css" media="screen, projection"> 

     <script type="text/template" id="library-template"> 
      <h1> Music Library</h1> 
      <ul class="albums"></ul> 
     </script> 

     <script type="text/template" id="album-template"> 
      <span class="album-title"><%= title %></span> 
      <span class="artist-name"><%= artist %></span> 
      <ol class="tracks"> 
       <% _.each(tracks, function(track) { %> 
       <li><%= track.title %></li> 
       <% }); %> 
      </ol> 
     </script> 

    </head> 

    <body> 
     <div id="container"> 
      <h1>User manager</h1> 
      <hr /> 
      <div class="page"></div> 
     </div> 
     <script src="js/vendor/jquery-1.5.1.min.js"></script> 
     <script src="js/vendor/underscore.js"></script> 
     <script src="js/vendor/backbone.js"></script> 
     <script> 
      var Router = Backbone.Router.extend({ 
       routes:{ 
        "" : 'home' 
       } 
      }); 
      var router = new Router(); 
      router.on('route:home', function(){ 
       console.log("======================================") 
      }); 
      Backbone.history.start(); 
     </script> 

    </body> 
</html> 

當網頁加載完畢後,我得到一個錯誤的螢火一樣

TypeError: router.on is not a function router.on('route:home', function(){

可我知道什麼是我的錯誤。

在此先感謝。

+0

你確實做了比這更多的事情,請分享一些更多的信息。 Backbone.Router擴展了Backbone.Events,所以'on'方法應該完美工作。 – Loamhoof

回答

0

只有您粘貼在文件中的代碼我添加了Backbone.hisrory.start();它爲我工作。 如果這不能解決你的問題,也許你可以分享一點你的代碼,所以我們可以看看。我認爲這可能是一個問題,你如何添加你的骨幹文件及其依賴關係,但我無法確定。

var Router = Backbone.Router.extend({ 
    routes:{ 
     '' : 'home' 
    } 
}); 
var router = new Router(); 
router.on('route:home', function(){ 
    console.log("======================================") 
}); 
Backbone.history.start(); 
+0

嗨,大家好,我用完整的代碼編輯了我的問題,並使用了Backbone.js 0.5.1版本。任何人都可以幫助我解決這個問題。 –

+1

我認爲你使用的不支持Backbone的Jquery版本,Backbone的工作原理是jquery 1.7.2或更高版本。 –