Ir para conteúdo


Foto

View compartilhada e eventos sendo ouvidos no controller errado


Melhor Resposta djhonyy , 09 June 2016 - 00:49

Poxa,  eu cheguei a verificar os novos parâmetros para o widget e não fui sagaz pra observar por esse ponto de vista. Muitissimo obrigado.

Visualizar todo o conteúdo do post


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

#1 djhonyy

djhonyy

    Member Avançado

  • Membros
  • PipPipPip
  • 530 posts
  • LocationFlorianópolis

Postado 02 June 2016 - 22:40

Pessoal,

depois de tanto tempo desenvolvendo em ExtJS me deparo com um problema que só tive na versão 3x, mas que é novidade pra mim na 4x

Tenho dois controllers Fornecedor e Franquia. Em ambos os controllers tem uma view de pesquisa cidade (cidade/Search.js). Ambos os controllers posuem listeners do tipo:

 

'cidadeSearch button[action=doCidadeSearch]': {
    click: this.doCidadeSearch
},
'cidadeSearch button[action=doCidadeSelect]': {
    click: this.doCidadeSelect
},
'cidadeSearch': {
    itemdblclick: this.doCidadeSelect
}

A tela de busca de cidade é chamada dessa forma

    showCidadeSearch: function () {
        Ext.widget('cidadeSearch');
    },

A view de cidades esta mais ou menos assim:
 

Ext.define('Application.view.cidade.Search', {
    extend: 'Ext.window.Window',
    alias: 'widget.cidadeSearch',

O problema é o seguinte: Tanto fornecedor quanto franquia chamam a mesma view para busca de cidade, mas quando faço alguma coisa na view, que foi chamada por fornecedor, os eventos são disparados no controller de Franquia. Há alguma forma que seja possível definir o escopo da view para o controller que esteja chamando ela naquela momento? 

A propósito, estou usando o Ext.Desktop.

Agradeço a ajuda dos colegas.

 

 

 

 

 

 

 
 

  • ratamiette curtiu isso
Johnathan Cardoso
Desenvolvedor WEB

twitter: @djhonyy

Ajude a manter o fórum organizado
Quando sua dúvida for sanada. Coloque [RESOLVIDO] junto ao título do tópico.

#2 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 08 June 2016 - 10:39

Bom dia,

 

 

E se você tentar fazer o seguinte:

 

No Ext.widget você passar um itemId.

 

- Controller Fornecedor: 

showCidadeSearch: function () {
     Ext.widget('cidadeSearch',{
           itemId: 'cidadeSearchFornecedor'
     });
},

- Controller Franquia: 

showCidadeSearch: function () {
     Ext.widget('cidadeSearch',{
           itemId: 'cidadeSearchFranquia'
     });
},

E aí no listeners de Fornecedor: 

'#cidadeSearchFornecedor button[action=doCidadeSearch]': {
     click: this.doCidadeSearch
},
'#cidadeSearchFornecedorbutton[action=doCidadeSelect]': {
     click: this.doCidadeSelect
},
'#cidadeSearchFornecedor': {
     itemdblclick: this.doCidadeSelect
}

E você faria o mesmo com a Franquia... Não sei se é a melhor forma, ou se tem como passar o escopo como vc diz... espero que ajude.


  • djhonyy e Legolas curtiram isso
ratamiette

#3 djhonyy

djhonyy

    Member Avançado

  • Membros
  • PipPipPip
  • 530 posts
  • LocationFlorianópolis

Postado 09 June 2016 - 00:49   Melhor Resposta

Poxa,  eu cheguei a verificar os novos parâmetros para o widget e não fui sagaz pra observar por esse ponto de vista. Muitissimo obrigado.


Johnathan Cardoso
Desenvolvedor WEB

twitter: @djhonyy

Ajude a manter o fórum organizado
Quando sua dúvida for sanada. Coloque [RESOLVIDO] junto ao título do tópico.

#4 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 09 June 2016 - 14:45

Olá djhonyy,

 

Pois é, o segundo parâmetro é um objeto de configuração que você pode passar para o construtor do widget.

 

Fico feliz em ter ajudado.  ;)

 

Até mais ! 


  • Legolas curtiu isso
ratamiette




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

0 membros, 0 visitantes, 0 membros anônimos