1. #1
    Sencha User
    Join Date
    Jun 2010
    Posts
    139
    Vote Rating
    3
    jeanluca is on a distinguished road

      0  

    Default Answered: problem with requiring files

    Answered: problem with requiring files


    Hello

    When I run my app I get warnings like

    Code:
    [WARN][Anonymous] [Ext.Loader] Synchronously loading 'NS.view.template.SearchListItem'; consider adding NS.view.template.SearchListItem' explicitly as a require of the corresponding class
    Here is how I've used the SearchListItem:

    Code:
    Ext.define('NS.view.ItemList',
    {
        extend: 'Ext.dataview.List',
    
        requires: [ 'NS.view.template.SearchListItem'],
    
        config:
        {
            itemTpl: Ext.create('NS.view.template.SearchListItem'),
            ......
        }
    });
    The warning is only gone when I require the SearchListItem in app.js

    Any suggestions ?

    Cheers

  2. Code:
    Ext.define('NS.view.ItemList',
    {
        extend: 'Ext.dataview.List',
    
        requires: [ 'NS.view.template.SearchListItem'],
    
        config:
        {
            itemTpl: Ext.create('NS.view.template.SearchListItem'),
            ......
        }
    });
    Code in red is invalid, you should not create an instance on a config like that, only create instances within methods like (typing off top of my head):

    Code:
    Ext.define('NS.view.ItemList',
    {
        extend: 'Ext.dataview.List',
    
        requires: [ 'NS.view.template.SearchListItem'],
    
        config:
        {
            itemTpl: true,
            ......
        },
    
        applyItemTpl : function(tpl, oldTpl) {
            if (tpl === true) {
                tpl = Ext.create('NS.view.template.SearchListItem');
            }
    
            return this.callParent([tpl, oldTpl]);
        }
    });

  3. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,412
    Answers
    3549
    Vote Rating
    850
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    Code:
    Ext.define('NS.view.ItemList',
    {
        extend: 'Ext.dataview.List',
    
        requires: [ 'NS.view.template.SearchListItem'],
    
        config:
        {
            itemTpl: Ext.create('NS.view.template.SearchListItem'),
            ......
        }
    });
    Code in red is invalid, you should not create an instance on a config like that, only create instances within methods like (typing off top of my head):

    Code:
    Ext.define('NS.view.ItemList',
    {
        extend: 'Ext.dataview.List',
    
        requires: [ 'NS.view.template.SearchListItem'],
    
        config:
        {
            itemTpl: true,
            ......
        },
    
        applyItemTpl : function(tpl, oldTpl) {
            if (tpl === true) {
                tpl = Ext.create('NS.view.template.SearchListItem');
            }
    
            return this.callParent([tpl, oldTpl]);
        }
    });
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  4. #3
    Sencha User
    Join Date
    Jun 2010
    Posts
    139
    Vote Rating
    3
    jeanluca is on a distinguished road

      0  

    Default


    ok, thanks a lot!

  5. #4
    Sencha User
    Join Date
    Jun 2010
    Posts
    139
    Vote Rating
    3
    jeanluca is on a distinguished road

      0  

    Default


    I can't get this to work in the following situation in which I create a new field type:

    Code:
    Ext.define('NS.view.field.CField', { 
              extend: 'Ext.field.Field',
              xtype: cfield',
              config: {
                   component: {
                         xtype: 'panel',
                         tpl: 'NS.view.field.template.CfTpl'
                   }
             },
             initialize: function() {
                   this.callParent();
             },
             applyTpl: function(nv, ov) {
                    this.getComponent().setTpl(Ext.create('NS.view.field.template.CfTpl') ;
             },
             .....
    So, if create this component something like

    Code:
    {
         xtype: 'cfield',<br>
         tpl: true<br>
    }
    So, how can I set the tpl on the component ?

    cheers

Thread Participants: 1

Tags for this Thread