Backbone.js _ensureElement error
Asked Answered
J

1

11

I'm getting this error, when I want to initialize the view from router class.

Error is: Uncaught TypeError: Object # has no method '_ensureElement'

BlogFormView:

App.BlogFormView = Backbone.View.extend({
    el: ".data-form",
    initialize: function(){
        this.template = _.template($("#blog_form_template").html());
        this.render();
    },
    render: function(){
        this.$el.html(this.template({blog: this.model.toJSON()}));
        return this;
    },
    events: {
        "click .submit-blog" : "submitForm"
    },
    submitForm: function(ev){

    }
});

Router:

var blog = new App.Blog();
var blogFormView = App.BlogFormView({model: blog});
Jennette answered 10/12, 2013 at 7:17 Comment(0)
H
25

You are missing new keyword in router code:

var blogFormView = new App.BlogFormView({model: blog});

Also, it usually isn't best idea to call render inside the initialize method. I personally would just call render inside the router code.

Hancock answered 10/12, 2013 at 7:38 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.