O Ember tem uma curva de aprendizado acentuada porque a) ainda não é estável, b) há tantos exemplos desatualizados na web que podem levar você ao erro. Ember-Data, um irmão gêmeo é uma besta mais complicada para começar. Estando em forte desenvolvimento, as coisas mudaram tão rápido que o fragmento de hoje não é mais relevante. Por um lado, é muito complicado aprender Ember, por outro, sim, é tudo sobre tecnologia de ponta – você sabe o que fazer!
O problema de hoje fez minha cabeça girar, mas depois de perguntar aqui e ali, com a ajuda de caras incríveis no Stackoverflow e no canal IRC do Ember, eu finalmente consegui, yay!
Então, vamos direto ao ponto. Eu gostaria de mostrar a você como usar a relação hasMany em acessórios na revisão 12 do Ember-Data .
Primeiro você deve definir o Adaptador de Fixação para um modelo. Lembre-se de que você pode misturar fixtures e dados reais (adaptador REST) para acelerar o desenvolvimento.
Os exemplos (muito simplificados) abaixo foram escritos em Coffee Script.
App.Store = DS.Store.extend
revision: 12
adapter: 'DS.RESTAdapter' #default adapter
# server doesn’t return real data yet
App.Store.registerAdapter 'App.Post', DS.FixtureAdapter
App.Store.registerAdapter 'App.Comment', DS.FixtureAdapter
Vamos definir nossos modelos:
App.Post = DS.Model.extend
comments: DS.hasMany 'App.Comment'
title: DS.attr 'string'
content: DS.attr 'string'
App.Comment = DS.Model.extend
post: DS.belongsTo 'App.Post'
title: DS.attr 'string'
content: DS.attr 'string'
E nossos dados de fixação:
App.Post.FIXTURES = [
id: 1
title: 'Big brother is watching you!'
content: 'Smith! You’re being watched!'
comments: [1, 2]
,
id: 2
title: 'Novus ordo seclorum'
content: 'How come brown cow?'
comments: [3, 4, 5]
]
App.Comment.FIXTURES = [
id: 1
title: 'I can't believe it!'
content: 'world is soo beautiful on the TV!'
,
id: 2
title: 'Hey dude, we’re in the 21st century!'
content: 'in your face!'
,
id: 3
title: 'Hey, I think I saw it somewhere!'
content: 'it must be good'
,
id: 4
title: 'WTF?!'
content: 'another conspiracy theorist ha ha'
,
id: 5
title: 'We’re doomed!'
content: 'politicians must do sth about it!'
]
A parte complicada é como fazer funcionar. Na verdade, tudo se resume a esta parte:
comments: [1, 2]
fazendo você se sentir bem. 🙂
Não acho que esteja bem documentado, pelo menos não consegui encontrar. Em contraste com o JSON retornado pelo servidor, você não precisa definir o sufixo _ids .
Disseram-me que as luminárias Ember são ótimas por causa de sua simplicidade e, quando terminar, mudar para dados reais é um passeio no parque.
Espero que seja útil. Ah, e é claro que você pode acessá-lo em modelos de guidão como faria com dados reais, ou seja, por meio de um controlador.