error is not a constructor

853 Views Asked by At

I am new to backbone and requirejs... I am working on a small gallery app where i came across this error in firefox firebug and in chrome it doesn't show any error chrome dev tool... please help me in this here is my code PhotosCollectionjs

define([
'jquery',
'underscore',
'backbone',
'models/thumb/PhotoModel'
], function ($, _, Backbone, PhotoModel) {
var PhotosCollection = Backbone.Collection.extend({
    model: PhotoModel,
    url: '/photos?query=xxx',
    fetch: function (options) {

        options = options || {};
        .......
        Backbone.Collection.prototype.fetch.call(this, options);
    },
    parse: function (response) {
          ......
        return response.photos;
    }

});

return PhotosCollection;
 });

loadphotos js

 define([
 'jquery',
  'underscore',
  'backbone',
   'collections/thumb/PhotosCollection'

    ], function ($, _, Backbone, PhotosCollection) {
console.log(PhotosCollection); .... undefined(firebug) ... function (){return r.apply(this,arguments)} (chrome dev tool)

var loadPhotos = function (container, options) {
    var photos;
    photos = void 0;
    if (options) {
        photos = new PhotosCollection();

        options.collection = photos;

    }
   .....................
    ................
};
return loadPhotos;
 });

in firebug it is giving error TypeError: PhotosCollection is not a constructor

photos = new PhotosCollection();

EDIT its temporarily solved .... but now again after few refreshes i receive same error in firebug but no error in chrome... Please someone help me

Edit 2 Trial and error i found that it occurs only while debugging with breakpoints.... if i remove all breakpoints its giving no error... is it related to async loading of scripts or something else???

1

There are 1 best solutions below

0
On

i just included initialize in PhotosCollection js and now its giving no error... i dont know what exactly the problem but it got solved..... But i am interested in knowing the cause for it... as only firebug thrown error and chrome doesn't... Please give me some insight

here is my new photosCollection js with blank intialize....

   define([
  'jquery',
 'underscore',
 'backbone',
 'models/thumb/PhotoModel'
 ], function ($, _, Backbone, PhotoModel) {
 var PhotosCollection = Backbone.Collection.extend({
 model: PhotoModel,
url: '/photos?query=xxx',
 initialize:function(options){},
fetch: function (options) {

    options = options || {};
    .......
    Backbone.Collection.prototype.fetch.call(this, options);
},
parse: function (response) {
      ......
    return response.photos;
}

  });

return PhotosCollection;
});