rbawaskar
rbawaskar

Reputation: 1045

Backbone.js Models Uncaught TypeError: undefined is not a function

I am trying to create a Backbone Model.

However the as soon i create a object of Model, i get following error

Uncaught TypeError: undefined is not a function 

on backbone.js files extend function.

Here is jsFiddle for it.

var ProjectModel = new Backbone.Model.extend({
    idAttribute: '_id',
    urlRoot: '/project',
    defaults: function () {
        return {
            name: 'New Project',
            description: 'Add Description here'
        };
    }
});

// var Projects = Backbone.Collection.extend({
//     model: ProjectModel,
//     url: '/project'
// });

// var projects = new Projects();
var obj = new ProjectModel({
    name: 'test'
});
console.log(obj);

Upvotes: 0

Views: 1560

Answers (1)

kinakuta
kinakuta

Reputation: 9037

Remove the "new" that appears before your Backbone.Model.extend call - should look like this:

var ProjectModel = Backbone.Model.extend({
  idAttribute: '_id',
  urlRoot: '/project',
  defaults: function () {
    return {
        name: 'New Project',
        description: 'Add Description here'
    };
  }
});

By putting "new" there, you were returning an instance of a Backbone model, not a new constructor with which to make new model instances.

Upvotes: 1

Related Questions