Uncaught TypeError: Cannot read property 'model' of undefined in builder.js

Lodel picture Lodel · Apr 15, 2016 · Viewed 12.8k times · Source

Please help me regarding this error

Uncaught TypeError: Cannot read property 'model' of undefined" in Builder.js.

I'm using Extra theme from Elegant and I just updated my Wordpress to Version 4.5. When I tried to delete some sections in Divi Builder I got this error.

I don't know how to fix this. Uncaugth Error Elegant Theme

Answer

Roy Toledo picture Roy Toledo · May 9, 2016

I came across this error on the Divi Theme. This is how I got it fixed... It will probably work for you as well.

Divi/includes/builder/script/builder.js

Replace these lines (2 total)

if ( view['model']['attributes']['parent'] === parent_id )

With these lines

if ( view !== undefined && view['model']['attributes']['parent'] === parent_id )

And replace these 2 functions

getNumberOf : function( element_name, module_cid ) {
    var views = this.get( 'views' ),
        num = 0;

    _.each( views, function( view ) {
        var type = view['model']['attributes']['type'];

        if ( view['model']['attributes']['parent'] === module_cid && ( type === element_name || type === ( element_name + '_inner' ) ) )
            num++;
    } );

    return num;
},

getNumberOfModules : function( module_name ) {
    var views = this.get( 'views' ),
        num = 0;

    _.each( views, function( view ) {
        if ( view['model']['attributes']['type'] === module_name )
            num++;
    } );

    return num;
},

With these

getNumberOf : function( element_name, module_cid ) {
    var views = this.get( 'views' ),
        num = 0;

    _.each( views, function( view ) {
        if(view !== undefined){
            var type = view['model']['attributes']['type'];

            if ( view['model']['attributes']['parent'] === module_cid && ( type === element_name || type === ( element_name + '_inner' ) ) )
                num++;
        }
    } );

    return num;
},

getNumberOfModules : function( module_name ) {
    var views = this.get( 'views' ),
        num = 0;

    _.each( views, function( view ) {
        if(view !== undefined){
            if ( view['model']['attributes']['type'] === module_name )
                num++;
        }
    } );

return num;
},