Pergunta

Eu tenho um aplicativo da web para o qual estou usando o ExtJS 4.2.Este aplicativo possui vários componentes diferentes - um painel que exibe alguns dados, outro painel que exibe alguns outros dados, uma grade, um gráfico, etc., etc.

É necessário que cada componente tenha no mínimo um conjunto específico de funções e propriedades.Então, eu gostaria de definir uma classe de 'componente' da qual eu possa estender todo o resto.Por exemplo:

Ext.define('MyApp.BaseComponent', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.myapp-basecomponent',

    prop1: true,
    prop2: 17,

    func1: function (a, b) {
        return a + b;
    }
});

Então, eu estenderia cada componente individual do meu aplicativo a partir dessa classe de componente base.O problema é que se eu definir o componente base como uma extensão de 'Ext.panel.Panel', só poderei estender outros painéis a partir dele.Não consigo estender uma grade, árvore, etc, etc.

Existe uma maneira de conseguir isso?Ou estou abordando isso da maneira errada?Talvez eu deva aninhar tudo que não é um painel (grade, gráfico, etc.) em um painel para que todos possam se estender do BaseComponent?Conselho muito apreciado.

Foi útil?

Solução

Se você deseja apenas aumentar a classe do componente base, você pode simplesmente fornecer uma substituição que os adicione:

Ext.define('MyApp.AugmentComponent', {
    override: 'Ext.Component',

    a: 1,
    b: 2,

    fn1: function() {
    }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top