Thank you for reporting this bug. We will make it our priority to review this report.
  1. #1
    Sencha User Dumas's Avatar
    Join Date
    Dec 2008
    Location
    Vienna, Austria
    Posts
    579
    Vote Rating
    9
    Dumas will become famous soon enough

      0  

    Default Ext.form.Panel doesn't allow to defined a api object

    Ext.form.Panel doesn't allow to defined a api object


    It should be possible to define an api object like this:

    Code:
    api: { load: SomeStub.load, submit:SomeStub.submit }
    currently Ext Designer generates:

    Code:
    api: '{ load: SomeStub.load, submit:SomeStub.submit }'
    Tested on Mac OS X Lion with Ext Designer 2.0 build 298

    best regards
    Roland

  2. #2
    Sencha User
    Join Date
    Jun 2011
    Posts
    350
    Vote Rating
    1
    bharatn is on a distinguished road

      0  

    Default


    Hi Roland,

    We recently opened a ticket for this DSGNR-1393. This should be resolved in the coming weeks.

    Thanks
    Bharat Nagwani
    Sencha Designer Development Team

  3. #3
    Sencha User Dumas's Avatar
    Join Date
    Dec 2008
    Location
    Vienna, Austria
    Posts
    579
    Vote Rating
    9
    Dumas will become famous soon enough

      0  

    Default


    If someone else is also using Ext Designer with FormPanels and API, here's a override which makes the Designer code work proper (for build 298):

    Code:
    // just change the following line
    var className = 'MyApp.view.ui.CommentForm';
    
    // you don't have to care about this
    Ext.require([className], function() {
        var classObj = Ext.ClassManager.get(className),
        	classPrototype = classObj.prototype,
        	fixApiConfig = function(api) {
    			if(Ext.isString(api)) {
    				var stringToObject = new Function("return "+api);
    				return stringToObject();
    			} else {
    				return api;
    			}
    		};
    
    
    	// Ext Designer defines the api two times, so we need to 
    	// overwrite two times as well
        Ext.define(className+'Overrride', {
             override: className,
             
             // override the designer config
             api: fixApiConfig(classPrototype.api),
             
             // override the designer initComponent config
             constructor : function(config) {
                 if(!config.api) {
                     config.api = fixApiConfig(classPrototype.api);
                 }
                 this.callParent([config]);
             }
        });
    });

Thread Participants: 1