7

Sto sperimentando con Backbone.js e sto semplicemente cercando di far apparire i messaggi sullo schermo della mia console. Come sempre, ogni volta che lo faccio un errore continua a comparire (indicato di seguito)Unchaught TypeError: aspettarsi una funzione nell'istanza di controllo

Uncaught TypeError: Expecting a function in instanceof check, but got [object Object] backbone.js:1032 
_.extend.setElement backbone.js:1032 
_.extend._ensureElement backbone.js:1104 
Backbone.View backbone.js:986 
child backbone.js:1531 
(anonymous function) pageLoader.js:19 
(anonymous function) 

Ecco il file JavaScript

(function ($){ 

window.PageLoader = Backbone.View.extend({ 
    el: $("section"), 
    events: { 
    "": "initialization", 
    "click #aboutUs" : "aboutUs", 
    }, 

    initialization: function(){ 
    console.log('pageLoader.js initialized\nHome page rendered'); 
    }, 

    aboutUs:function(){ 
    console.log('About us page rendered.'); 
    } 
}); 

var pageLoader = new PageLoader(); 
//pageLoader.initialization(); 
//pageLoader.aboutUs(); 

})(jQuery); 

Anche qui è il codice HTML

<html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="css/main.css"> 
    <meta /> 
    <meta /> 
    <title>Bus tours and tows</title> 
    </head> 
    <body> 
    <div id="centerWrapper"> 
    <header> 
     <h1>So and so Bus tours and tows</h1> 
    <header/> 
    <nav> 
     <ul> 
     <li><a href="">Home</a></li> 
     <li><a href="#aboutUs">About us</a></li> 
     <li><a href="">Tours</a></li> 
     <li><a href="">Tows</a></li> 
     <li><a href="">Schedule</a></li> 
     <li><a href="">Contact</a></li> 
     </ul> 
    </nav> 
    <section></section> 
    <footer> &#169; Of So and so bus tours and tows. <br /> 
     <i>Questions regarding the construction of the website, please email</i> 
     <a href="mailto: [email protected]">Web Master</a> 
    </footer> 
    <div id="jsFilesAndDepend"> 
     <!-- --> 
     <!-- Filese that are dependant--> 
     <script src="js/dependencies/underscore.js"></script> 
     <script src="js/dependencies/backbone.js"></script> 
     <script src="js/dependencies/jquery-1.10.1.js"></script> 
     <script src="js/pageLoader.js"></script> 
     <script src=""></script> 
     <script src=""></script> 
    </div> 
    </div> 
    </body> 
</html> 

Sono nuovo a Backbone.JS. Grazie per l'aiuto.

risposta

9

È necessario caricare jQuery prima di spina dorsale,

<script src="js/dependencies/underscore.js"></script> 
    <script src="js/dependencies/jquery-1.10.1.js"></script> 
    <script src="js/dependencies/backbone.js"></script> 

Non è inoltre possibile definire le coppie di valori chiave di eventi vuoto,

events: { 
// "": "initialization", <- this is invalid. 
    "click #aboutUs" : "aboutUs", 
}, 
+0

Ehi, Grazie per la risposta! Questo ha eliminato il vecchio errore, ma ora ne sto ottenendo uno nuovo: 'Unchaught TypeError: Impossibile leggere la proprietà' 1 'di null backbone.js: 1062 _.extend.delegateEvents backbone.js: 1062 Backbone. Visualizza backbone.js: 988 child backbone.js: 1531 (funzione anonima) pageLoader.js: 19 (funzione anonima) ' –

+0

@JoshV Non è possibile avere chiavi evento vuote. – Andrew

+0

Ohh Ok, capisco. Il mio errore è stato pensare che abbia la stessa struttura del Backbone.Router. Ci provo. –