8

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

Prasad
  • 1,562
  • 5
  • 26
  • 40
Lodel
  • 81
  • 1
  • 1
  • 4
  • 1
    Welcome to StackOverflow! Before asking a question, please be sure to review the question in the preview box. Your current formatting is very difficult to read. – buczek Apr 15 '16 at 17:15
  • Sorry for that. I'm new here. :) – Lodel Apr 15 '16 at 17:34

3 Answers3

18

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;
},
Roy Toledo
  • 643
  • 4
  • 20
5

Roy Toledo answer works quite well for me, but i've replaced code in:

Divi/et-pagebuilder/js/admin.js

Divi version: 2.3.2

WP version: 4.7.1

3

I had a similar problem with the Divi theme (2.6) and WP (4.5). Same error message. An upgrade of the theme to the latest (2.7.3) fixed it in my case. The latest version of the Extra theme is 1.3.4 - looks like you are on 1.2.4.4

AndyT
  • 31
  • 2
  • I see.. The problem with me is that I don't have the updated version. :( – Lodel Apr 16 '16 at 04:21
  • 1
    for those that don't have a current ET subscription, in the spirit of Divi's GPL license, you can find a fix on [github for version 2.3.4](https://github.com/ajdruff/divi/releases) (the security patched version) that works with WordPress 4.5 – AndrewD Nov 03 '16 at 04:39