Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJS-5815 in a recent build.
  1. #1
    Ext JS Premium Member n3rd's Avatar
    Join Date
    Nov 2007
    Location
    Munich
    Posts
    72
    Vote Rating
    0
    n3rd is on a distinguished road

      0  

    Exclamation [4.1.0-RC2] Error defining mixins that themselves use Ext.util.Observable

    [4.1.0-RC2] Error defining mixins that themselves use Ext.util.Observable


    REQUIRED INFORMATION


    Ext version tested:
    • Ext 4.1.0-RC2 (broken)
    • Ext 4.0.7 (works)

    Browser versions tested against:
    • Chrome 18
    • IE9
    • FF11

    DOCTYPE tested against:
    • does not apply

    Description:
    • defining mixins that themselves use the Observable mixin does not work

    Steps to reproduce the problem:
    • define a mixin M that itself has the mixin Ext.util.Observable
    • define a class C that has mixin M

    The result that was expected:
    • when instantiated, class C should have both mixin M and Ext.util.Observable

    The result that occurs instead:
    • Ext bombs out with "this.prepareClass is not a function" in Method Ext.util.Observable.onClassMixedIn() when calling Ext.define('C', ...)

    Test Case:

    Code:
    Ext.define('M', {
    	mixins: {
    		observable: 'Ext.util.Observable'
    	},
    
    	mixinMethod: function () {
    		// do something
    	}
    });
    
    Ext.define('C', {
    	mixins: {
    		m: 'M'
    	},
    
    	someMethod: function () {
    		this.mixinMethod();
    	}
    });


    HELPFUL INFORMATION


    Screenshot or Video:
    • none

    See this URL for live test case: http://jsfiddle.net/yLACs/ (working version with Ext 4.0.7)


    Debugging already done:
    • none

    Possible fix:
    • not provided

    Additional CSS used:
    • does not apply

    Operating System:
    • Windows 7 Enterprise N

  2. #2
    Sencha - Support Team scottmartin's Avatar
    Join Date
    Jul 2010
    Location
    Houston, Tx
    Posts
    9,154
    Vote Rating
    475
    scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future scottmartin has a brilliant future

      0  

    Default


    This has been assigned. Thank you for the report.

    Regards,
    Scott.

  3. #3
    Ext JS Premium Member n3rd's Avatar
    Join Date
    Nov 2007
    Location
    Munich
    Posts
    72
    Vote Rating
    0
    n3rd is on a distinguished road

      0  

    Default


    This has not been fixed in 4.1, apparently. I do not think we are going to keep using Ext JS in the future.

  4. #4
    Sencha - Ext JS Dev Team evant's Avatar
    Join Date
    Apr 2007
    Location
    Sydney, Australia
    Posts
    17,055
    Vote Rating
    659
    evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute

      0  

    Default


    The issue has been resolved, for some reason the status hasn't been updated:

    Code:
    Ext.require('*');
    
    Ext.onReady(function() {
    
        Ext.define('M', {
            mixins: {
                observable: 'Ext.util.Observable'
            },
    
            mixinMethod: function() {
                // do something
            }
        });
    
        Ext.define('C', {
            mixins: {
                m: 'M'
            },
    
            someMethod: function() {
                this.mixinMethod();
            }
        });
        
        var c = new C();
        console.log(c.fireEvent, c.mixinMethod);
    
    });
    Evan Trimboli
    Sencha Developer
    Twitter - @evantrimboli
    Don't be afraid of the source code!

  5. #5
    Ext JS Premium Member n3rd's Avatar
    Join Date
    Nov 2007
    Location
    Munich
    Posts
    72
    Vote Rating
    0
    n3rd is on a distinguished road

      0  

    Default


    I still doesn't work for us. For some reason the core seems to be an RC still:

    Code:
    >> Ext.versions
    Object { core=4.1.0rc, extjs=4.1.0}
    Anyway, we'll stick to 4.0.7 for the time being. Other developers had poor experience with the support from Sencha as well and I think we're done with Ext JS anyway.

  6. #6
    Sencha - Ext JS Dev Team evant's Avatar
    Join Date
    Apr 2007
    Location
    Sydney, Australia
    Posts
    17,055
    Vote Rating
    659
    evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute

      0  

    Default


    Sounds like you don't have the latest version then (or perhaps a caching issue), you can grab 4.1 final from here: http://www.sencha.com/products/extjs/download/
    Evan Trimboli
    Sencha Developer
    Twitter - @evantrimboli
    Don't be afraid of the source code!

  7. #7
    Ext JS Premium Member n3rd's Avatar
    Join Date
    Nov 2007
    Location
    Munich
    Posts
    72
    Vote Rating
    0
    n3rd is on a distinguished road

      0  

    Default


    Not sure how it happened, but you were right. I've hotlinked http://dev.sencha.com/deploy/ext-4.1...t-all-debug.js for testing purposes, but it still doesn't work.

    Code:
    me.hasListeners is undefined (ext-all-debug.js (line 24600))

  8. #8
    Sencha - Ext JS Dev Team evant's Avatar
    Join Date
    Apr 2007
    Location
    Sydney, Australia
    Posts
    17,055
    Vote Rating
    659
    evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute

      0  

    Default


    I don't see that against 4.1.0 final. What happens if you go to:

    http://dev.sencha.com/deploy/ext-4.1...rray-grid.html

    Then drop this in the console:

    Code:
    Ext.define('M', {
            mixins: {
                observable: 'Ext.util.Observable'
            },
    
            mixinMethod: function() {
                // do something
            }
        });
    
        Ext.define('C', {
            mixins: {
                m: 'M'
            },
    
            someMethod: function() {
                this.mixinMethod();
            }
        });
        
        var c = new C();
        console.log(c.fireEvent, c.mixinMethod);
    Also, when you say "doesn't work", at what point does it crash?
    Evan Trimboli
    Sencha Developer
    Twitter - @evantrimboli
    Don't be afraid of the source code!

  9. #9
    Ext JS Premium Member n3rd's Avatar
    Join Date
    Nov 2007
    Location
    Munich
    Posts
    72
    Vote Rating
    0
    n3rd is on a distinguished road

      0  

    Default


    It may work with the simplistic code snippet I provided initially, but it doesn't work in our real-life application.

    Thanks for your effort, but don't bother. We're done with Ext JS, we've had too many BC-breaks even in minor releases.

Thread Participants: 2