Nie mogę uzyskać embedded
, aby działała poprawnie z danymi embera.W jaki sposób osadzić wiele małych związków Praca z danymi ember
mam coś takiego
App.Post = DS.Model.extend({
comments: DS.hasMany('App.Comment')
});
App.Comment = DS.Model.extend({
post: DS.hasMany('App.Post'),
name: attr('string')
});
A mój API zwraca następujące dla GET /post
:
[
{
id: 1
comments: [{name: 'test'}, {name: 'test2'}]
},
...
]
muszę wysłać to z POST /post
:
[
{
comments: [{name: 'test'}, {name: 'test2'}]
},
...
]
chcę pracować z modelami Ember i zlecać im odpowiednie żądania:
var post = App.store.createRecord(App.Post, hash_post_without_comments);
post.get('comments').createRecord(hash_comment);
App.store.commit(); // This should call the POST api
i
var posts = App.store.find(App.Post); // This should call the GET api
Kiedy próbuję coś podobnego post: DS.hasMany('App.Post', {embedded: true})
, GET działa ale POST próbuje zrobić post na dwa rekordy nie tylko dominujących jeden.
EDIT: mój prawdziwy przypadek użycia
1- Właśnie zbudowany dane Ember od mistrza
2- Moje adaptera: RESTAdapter
3- serializer: JSONSerializer
4 - Dodałem
App.MyAdapter.map('App.Join', {
columns: { embedded: 'always' }
});
5- Moje modele to:
App.Join = DS.Model.extend({
rowCount: DS.attr('number'),
columns: DS.hasMany('App.JoinColumn'),
});
App.JoinColumn = DS.Model.extend({
join: DS.belongsTo('App.Join')
});
6- Kiedy:
var a = App.Join.find(1);
a.get('columns').createRecord({});
App.store.commit();
POST dla joincolumn jest wysyłany, a rodzic nie jest brudny
Czego mi brakuje?
Ktoś jeszcze czytając to, spójrz: http://www.vinay.io/static/blog/2013/12_17.html – Vinay