backbone view - is not defined

匿名 (未验证) 提交于 2019-12-03 08:41:19

问题:

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) 

回答1:

I had a similar problem when I included my javascript files in the wrong order. Import them like so:

jQuery.js  Underscore.js Backbone.js YourCode.js 

If that's not the case then post the line at which this exception occurs.



回答2:

Are you sure the View's definition is before the initialization code? If it's in a separate file, are you sure the View's definition is executed first?



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!