This really confuses me, I think I'm stupid but I've searched and have done whatever I could. Whenever I declare a view and run BDD test with jasmine, it always returns "undefined is not a function". This is code
window.LocationView = Backbone.View.extend({ initialize: function() { // create new marker first this.marker = new google.maps.Marker({ title: this.model.get('name'), draggable: true, animation: google.maps.Animation.DROP, position: new google.maps.LatLng(this.model.get('lat'), this.model.get('long')), // give the position here }); // bind events this.model.bind('change', this.render, this); }, render: function() { this.marker.setTitle(this.model.get("name")); this.marker.setPosition(new google.maps.LatLng(this.model.get('lat'), this.model.get('long'))); }, });
This is how I declared it :
this.view = new LocationView({model: this.location}); this.view = new LocationView(); // neither of these ones work.
This is the error when I run this code with jasmine:
TypeError: undefined is not a function at [object Object].make (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:29:37) at [object Object]._ensureElement (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:30:270) at [object Object].<anonymous> (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:28:127) at new <anonymous> (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:32:136) at [object Object].<anonymous> (http://localhost/gmap_api/public/test/spec/specs.js:62:21) at [object Object].execute (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1001:15) at [object Object].next_ (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1790:31) at [object Object].start (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1743:8) at [object Object].execute (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:2070:14) at [object Object].next_ (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1790:31)