Ir para conteúdo


Foto

Quando se aplica o uso do "initComponent: function ()" e "Ex.apply()"?


  • Por favor, faça o login para responder
1 resposta neste tópico

#1 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 11 December 2017 - 18:44

 
Olá pessoal,
 
        Eu criei um grid que funciona perfeitamente desse modo:
 
Ext.define('App.view.pessoas.List', {
    extend: 'Ext.grid.Panel',
    xtype: 'pessoasList',  ,
    layout: 'fit',


    bind: {
        store: '{mystore}',
        selection: '{seleciona}'
    },


    requires: [
       'App.view.pessoas.PessoasController',
       'App.view.pessoas.PessoasViewModel'
    ],


    controller: 'Pessoas',


    viewModel: {
        
        type: 'pessoasviewmodel'
    },


    columns: [
        { text: 'Name', dataIndex: 'name', flex: 0.5 },
        { text: 'Email', dataIndex: 'email', flex: 1 }
    ],


    dockedItems: [{
        xtype: 'toolbar',
        dock: 'top',
        items: [{
            xtype: 'button',
            padding: '2 5 2 5',
            text: 'Editar item',
            handler: function (btn) {
                var grid = btn.up('grid');
                var selectedRow = grid.getSelectionModel().getSelection()[0];
                var janela = Ext.create('App.MyWindow', {
                    animateTarget: btn.getEl(),
                    //Com esta estrutura precisa de um viewmodel
                    viewModel: {
                        data: { seleciona: selectedRow }
                    }
                }).show();
            }
        }]
    }],

    ...

});

        Eu vejo muitos colegas construirem grids e utilizarem o  "initComponent: function ()" e "Ex.apply()" dessa forma:

Ext.define('App.view.pessoas.List', {
     extend: 'Ext.grid.Panel',


      xtype: 'pessoasList',  
   
    bind: {
        store: '{mystore}',
        selection: '{seleciona}'
    },


    requires: [
       'App.view.pessoas.PessoasController',
       'App.view.pessoas.PessoasViewModel'
    ],


    controller: 'Pessoas',


    viewModel: {
        
        type: 'pessoasviewmodel'
    },






    reference: 'person',




    initComponent: function () {


      Ext.apply(this,
              {

                  columns: [
                        { text: 'Name', dataIndex: 'name', flex: 0.5 },
                       { text: 'Email', dataIndex: 'email', flex: 1 }
                  ],







    dockedItems: [{
        xtype: 'toolbar',
        dock: 'top',
        items: [{
            xtype: 'button',
            padding: '2 5 2 5',
            text: 'Editar item',
            handler: function (btn) {
                var grid = btn.up('grid');
                var selectedRow = grid.getSelectionModel().getSelection()[0];
                var janela = Ext.create('App.MyWindow', {
                    animateTarget: btn.getEl(),
                    //Com esta estrutura precisa de um viewmodel
                    viewModel: {
                        data: { seleciona: selectedRow }
                    }
                }).show();
            }
        }]
    }],



                 .....


            }
        );


        this.callParent();     


    }


});

        Eu pergunto aos colegas, estou fazendo errado no primeiro exemplo que citei?  Quando se aplica o uso do  "initComponent: function ()" e "Ex.apply()"?

 

 



#2 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 12 December 2017 - 15:36

Eu estive trocando uma idéia com os "gringos" no fórum US, e eles me mostraram que o "Ext.apply" é para fundir propriedades de dois ou mais objetos.






0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos