ember.js 및 couch DB 백엔드를 사용하는 응용 프로그램에서 작업하고 있습니다. 지금까지 데이터베이스 드라이버로 ember-resource를 사용했지만, 지속 가능성이 높은 것으로 보아 ember-data로 전환하는 것을 고려하고 있습니다.ember-data 및 couchdb-adapter를 사용하여 한 요청에서 포함 된 객체를 가져 오는 방법
저는 소파 DB로 작업하고 있으므로 Couch DB-Adapter을 사용하고 있습니다.
내 데이터베이스의 문서에는 완전한 개체 구조가 포함되어 있으므로 데이터베이스 드라이버에 포함 된 개체를 지정해야합니다.
비록 내 하위 개체를 포함 된 것으로 지정하지만, ember 데이터는 주 json에서 개체를 가져 오는 대신 별도의 요청으로 이러한 개체를 가져 오는 것 같습니다.
App.UserProfile = DS.Model.extend({
type: DS.attr('string'),
fullname: DS.attr('string'),
email: DS.attr('string'),
pictureUrl: DS.attr('string'),
social: DS.hasMany('App.SocialWebAccount', { embedded: true }),
.....
});
App.SocialWebAccount = DS.Model.extend({
profile: DS.belongsTo('CaiMan.UserProfile'),
site: DS.attr('string'),
account: DS.attr('string'),
.....
});
과 같은 서버 데이터 IST 뭔가 : 로딩 후
{
"_id": "thoherr",
"_rev": "55-d4abcb745b42fe61f1a2f3b31c461cce",
"type": "UserProfile",
"fullname": "Thomas Herrmann",
"email": "[email protected]",
"pictureUrl": "",
"social": [
{
"site": "socialFacebook",
"account": "thoherr"
},
{
"site": "socialXing",
"account": "Thomas_Herrmann7"
},
{
"site": "socialEmail",
"account": "[email protected]"
}
]
}
에서, 사용자 프로필이 내 소셜 데이터, 대한 모두 ArrayProxy를 포함하지 다음과 같이
내 개체 정의
은 세 항목으로 채워지지만 SocialWebAccount 인스턴스 대신 모두 정의되지 않았습니다.이 배열에 액세스하려고하면 ember-data가 데이터를 가져 오기 위해 별도의 데이터베이스 액세스를 수행하는 것으로 보이므로 couch DB 어댑터가 정의되지 않은 _id 필드에 액세스하기 때문에 오류가 발생합니다 ....
나는 무엇이 누락 되었습니까?
"임베디드"플래그는 데이터가 이미 json에 있음을 알리고 객체는 json에서 인스턴스화 할 수 있다고 생각 했습니까?
왜 ember-data가 포함 된 데이터를 가져 오려고합니까?
힌트가 있습니까?