Ir para conteúdo


Foto

Stores de outros Model na mesma ViewModel, é possível e correto?


Melhor Resposta iso48 , 22 November 2017 - 07:32

Olá link.

 

Realmente dependerá do caso concreto.

 

Na maioria dos formulários faço o seguinte:

 

Consideremos a hipotese de um formulário com quatro combobox.

Neste caso crio apenas um viewModel com todos os stores que preciso para esse formulário (e só os que preciso para aquele formulário já que quando declaro a classe no requires e instancio o viewmodel no form a app carrega imediatamente todos os stores que estejam declarados no viewModel sejam ou não apenas os necessários para o formulário).

Algo do tipo:

Ext.define('MyApp.MyViewModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.myviewmodel',

     stores: {

            storecombo1: {
             ...
            },
            
            storecombo2: {
              ...
            },
            
            storecombo3: {
              ...
            },
            
            storecombo4: {
             ...
            }
        }
});


//NO FORM

requires: [
    'MyApp.MyViewModel'
],

viewModel: {
    type: 'myviewmodel'
},
(...)
{
 xtype: 'combobox',
 name: 'Combobox2',
 bind: {
   store: '{storecombo2}'
 },
 ...
},{
 xtype: 'combobox',
 name: 'Combobox3',
 bind: {
 store: '{storecombo3}'
 }
Visualizar todo o conteúdo do post


  • Por favor, faça o login para responder
3 respostas neste tópico

#1 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 26 October 2017 - 17:32

Olá pessoal,

 

       No MVC, eu criava variáveis para armazena stores para combobox. Por exemplo, no cadastro de Cidades, eu criei uma store para uma combobox que listaria os 'Estados', no meu formulário de Cidades:

        var dsEstado = new Ext.data.Store({
            model: 'App.model.Estado',
            autoLoad: true,
            remoteSort: true,
            fields: ['Id', 'Nome'],
            proxy: {
                actionMethods: { read: 'POST' },
                simpleSortMode: true,
                type: 'ajax',
                api: {
                    read: ""
                },
                reader: {
                    type: 'json',
                    root: 'rows',
                    successProperty: 'success'
                }
            }
        });

No MVVM, posso criar essa store de Estados, dentro da ViewModel de 'Cidades'?



#2 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 21 November 2017 - 14:54

Olá pessoal!

 

       Os gringos me responderam. Vejam a resposta aqui:  https://www.sencha.c...d=1#post1315318

 

      Gostaria de "ouvir" a opinião de outros colegas aqui do forum.

 

Abraços



#3 iso48

iso48

    Member Avançado

  • Membros
  • PipPipPip
  • 59 posts

Postado 22 November 2017 - 07:32   Melhor Resposta

Olá link.

 

Realmente dependerá do caso concreto.

 

Na maioria dos formulários faço o seguinte:

 

Consideremos a hipotese de um formulário com quatro combobox.

Neste caso crio apenas um viewModel com todos os stores que preciso para esse formulário (e só os que preciso para aquele formulário já que quando declaro a classe no requires e instancio o viewmodel no form a app carrega imediatamente todos os stores que estejam declarados no viewModel sejam ou não apenas os necessários para o formulário).

Algo do tipo:

Ext.define('MyApp.MyViewModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.myviewmodel',

     stores: {

            storecombo1: {
             ...
            },
            
            storecombo2: {
              ...
            },
            
            storecombo3: {
              ...
            },
            
            storecombo4: {
             ...
            }
        }
});


//NO FORM

requires: [
    'MyApp.MyViewModel'
],

viewModel: {
    type: 'myviewmodel'
},
(...)
{
 xtype: 'combobox',
 name: 'Combobox2',
 bind: {
   store: '{storecombo2}'
 },
 ...
},{
 xtype: 'combobox',
 name: 'Combobox3',
 bind: {
 store: '{storecombo3}'
 }


#4 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 22 November 2017 - 18:10

 

Olá link.

 

Realmente dependerá do caso concreto.

 

Na maioria dos formulários faço o seguinte:

 

Consideremos a hipotese de um formulário com quatro combobox.

Neste caso crio apenas um viewModel com todos os stores que preciso para esse formulário (e só os que preciso para aquele formulário já que quando declaro a classe no requires e instancio o viewmodel no form a app carrega imediatamente todos os stores que estejam declarados no viewModel sejam ou não apenas os necessários para o formulário).

Algo do tipo:

Ext.define('MyApp.MyViewModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.myviewmodel',

     stores: {

            storecombo1: {
             ...
            },
            
            storecombo2: {
              ...
            },
            
            storecombo3: {
              ...
            },
            
            storecombo4: {
             ...
            }
        }
});


//NO FORM

requires: [
    'MyApp.MyViewModel'
],

viewModel: {
    type: 'myviewmodel'
},
(...)
{
 xtype: 'combobox',
 name: 'Combobox2',
 bind: {
   store: '{storecombo2}'
 },
 ...
},{
 xtype: 'combobox',
 name: 'Combobox3',
 bind: {
 store: '{storecombo3}'
 }

 

Boa noite, iso48!

 

     Muito legal sua resposta, isso corroborou com a solução para a minha questão.   Eu estava preocupado se não estava seguindo o padrão do MVVM; achei que se eu criasse várias stores de modelos diferentes para a aquela ViewModel do meu formulário específico. Ainda bem que estou no caminho certo....rsrsr

 

 

Forte abraço 






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

0 membros, 0 visitantes, 0 membros anônimos