I am following a backbone.js for beginners tutorial, and I've got stuck at the first hurdle. I get the error TypeError: a.apply is not a function
in firebug (Firefox 20.0.1).
I have the following code:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Backbone Test</title>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css" />
<meta charset="utf-8" />
</head>
<body>
<div class="container">
<h1>User Manager</h1>
<hr />
<div class="page"></div>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
<script>
var Router = new Backbone.Router.extend({
routes: {
'': 'home'
}
});
var router = new Router();
</script>
</body>
</html>
I am using these older versions of jquery, underscore and backbone because they are the versions used in the tutorial. I tried using current versions of all, and I get a similar error: "TypeError: i.apply is not a function".
The error happens when an instance of Router is created, ie the line: var router = new Router();
above.
Is the error to do with my set-up? WAMP, or the code, or the libraries? I can't understand it as it's the same to the letter as the tutorial.
Change
var Router = new Backbone.Router.extend({
To
var Router = Backbone.Router.extend({
When you're extending those classes, you only need to invoke extend
, which will return the constructor function that you'll call new
on later.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With