[Curso de ExtJS 4] Aula 14: Data Package: Model Associations
Vídeo/Screencast de hoje: aula 14 do curso gratuito de Ext JS 4!
Na aula de hoje vamos aprender como fazer associações entre Models, como tem muitos (has many), pertence a (belongs to) e tem um (has one).
Quem quiser ver todas as aulas já publicadas, é só clicar aqui.
Espero que gostem dessa aula e fico no aguardo do feedback de vocês!
Requerimentos:
- Ext JS 4 SDK
- Servidor Apache (não é obrigatório, mas recomendado ter instalado na máquina) – vai nos ajudar a executar alguns exemplos mais pra frente no curso.
- Editor de Texto (qualquer um de sua preferência). No vídeo usei o Sublime Text 2 (tem pra Mac OS, Windows e Linux – a versão shareware não expira!)
- Browser (de preferência Firefox com Firebug ou Chrome).
Vídeo:
Vimeo: http://vimeo.com/loiane/curso-extjs4-aula14
YouTube: http://youtu.be/raj9QsFIpDQ
Código: https://github.com/loiane/curso-extjs4
Slides:
Curso ExtJS 4 – Aula 14 – Data Package: Model Associations
View more presentations from Loiane Groner.
Até a próxima aula!
Posts Similares
Comments (17)
Links to this Post
- Curso de ExtJS 4 - Gratuito! | Loiane Groner | 21 de February de 2012














Não existe a associação many-to-many? Sabe se a Sencha pretende adicionar essa funcionalidade? Tem algum roadmap?
Oi Eduardo,
Por enquanto ainda não tem a associação many-to-many, mas vc pode contornar esse problema através da declaração de vários models e várias stores. Mas nesses caso terá que fazer o load das informações por partes, não dá pra fazer load aninhado.
Olá Loiane,
Parabéns mais uma vez, tenho acompanhado e estudado todas as aulas
Loiane, pq se preocupar com isso na camada visual ? Isso ai nao seria funcao do codigo no servidor ? Por exemplo, no servidor vc ja faz o select e monta o json do jeito que sera apresentado num table do Ext ??
Oi Douglas,
Em alguns casos, vc também precisa manipular dados no client, e precisa garantir os relacionamentos para não quebrar a sua app.
Tendo o mapeamento correto, você também terá menos trabalho no servidor para parsear os objetos.
Loiane,
no trecho de código:
var telefones = pessoa.telefones();
como ficaria esse método “telefones()” caso minha classe Telefone estivesse em um arquivo separado; por exemplo, se ela estivesse definida em um arquivo localizado em js/classes/Telefone.js ?
Agradecido pela atenção e tudo de bom!
Oi Franciso, fica a mesma coisa.
O que importa é a associação, pois é por causa dela que o Ext gerou essa função/método teletones().
No MVC isso fica bem mais claro!
[]‘s
Loiane, mudando 1 pouco o foco das perguntas, porém ainda no assunto de associações:
Como faço pra carregar 1 dado com associação em um Form?
Ex:
Pessoa 1 – 1 Endereço
Endereço:
logradouro, numero, cep
como faço pra carregar no form o valor de endereço.logradouro?
Peço desculpas pela mudança no foco e agradeço se me responder a pergunta…
Para salvar um objeto do model com os seus relacionamentos, ou seja, usar Pessoa.save(), como faço para que seja enviado no mesmo post os dados dos telefones da pessoa?
Achei alguma informação aqui http://www.sencha.com/forum/showthread.php?141957-Saving-objects-that-are-linked-hasMany-relation-with-a-single-Store
Será que já há alguma solução para isso?
Olá Tiago,
As associações com Model só funcionam com a leitura de informações. Se quiser enviar as informações novamente para o servidor, tem que achar uma maneira alternativa, como no link descrito que você postou.
[]‘s
Primeiramente gostaria de parabeniza-la pelo excelente curso.
Até essa aula já passamos pelo modelo, pela validação e esta aula é de associação.
Existe uma maneira de construir um objeto que vá ao meu banco de dados e cria dinamicamente os modelos, validacoes e associações a partir do conteudo do meu banco de dados?
Se existir eu garantoque as modificações feitas no back-end serão refletidas no front-end sem necessidade de ajuste constante de codigo.
Sei que isso é possivel por exemplo no Adobe flash 4, onde você pode fazer uma classe que recebe os dados e conforme os mesmos cria dinamicamente os objetos, sem necessidade de atualizar o codigo, mas apenas o banco de dados.
Olá Tadeu,
Existem ferramentas desenvolvidas pela comunidade que fazem mais ou menos isso que vc descreveu.
Mas infelizmente o ExtJS não faz isso nativamente.
[]‘s
Oi Loiane estou adorando suas videos aulas, gostaria de saber qual a forma alternativa que vc fazia no extjs4.0 em relação ao relacionamento ‘um-para-um’ que vc mostrou usando o hasOne obrigado…
Dentro de uma grid por exemplo como faço para carregar os dados de uma associação:
Pessoa 1:1 telefone
Eu tentei pessoa.telefone porém só funcionou quando eu declaro o telefone como uma atributo da pessoa(sem associação)
Oi Jorge,
Você precisa usar a função renderer da coluna. Você pode declarar qualquer dataindex, e aí no renderer você pega a coluna exata que vc precisa exibir usando o método get da associação.
[]‘s
Olá Fabio,
Eu usava o hasMany, mas sabendo que só teria um item na associação; ou então usava a associação belongsTo, só que com a associação invertida.
[]‘s