저장소는 특수한 개체와의 관계 변화를 추적합니다. 다음과 같은 관계에 대한 변경 개체를 저장소에 요청할 수 있습니다.
store.relationshipChangeFor(child.get('clientId'), belongsToAssociationName);
변경하지 않으면 아무 것도 반환하지 않습니다.
하지만 그렇게 할 필요는 없을 것입니다. 관계형 데이터 저장소의 경우 하위 레코드는 belongsTo 연결을 유지해야합니다. 작성/업데이트가 성공적으로 완료되면 해당 관계를 모두 맹목적으로 표시 할 수 있으며 저장소 중 일부가 실제로 더럽지 않은 경우 저장소에서 문제가되지 않습니다.
는 사실, 그 DS.RESTAdapter
는 now을 수행 정확히 무엇 :
DS.RESTAdapter = DS.Adapter.extend({
// ...
didSaveRecord: function(store, record, hash) {
record.eachAssociation(function(name, meta) {
if (meta.kind === 'belongsTo') {
store.didUpdateRelationship(record, name);
}
});
store.didSaveRecord(record, hash);
}
// ...
});
때마다 당신이 결정할 때마다 당신은 관계 해결로, 단순히 store.didUpdateRelationship(child, belongsToAssociationName)
전화를 표시 할 준비가되었습니다.
이 모든 것은, 진짜 트릭 - 그것은 부모가 생성 된 때까지 아이의 저장을 지연에서의 (즉, 이미 구현 이후) 해결로 관계를 표시하지 않을 말했다되고.
실제로는 단지 a pull request을 제출했습니다. 도움이된다면 도움이 될 것입니다. 요청에 대해 지원해 주시면 감사하겠습니다.
출처
2012-11-17 17:51:40
Ian
지금 당장은 사무실에서 다른 것을 개발해야하는데,이 어댑터를 필요로하기 때문에 이것을 보려고합니다. 우리는 didSaveRecord https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L34를 사용자 정의해야한다고 생각합니다. Tom은 순서에 따라 종류 의존성 그래프를 작성한다고 말합니다. 부양 기록을 기다리는 것 ... 그렇게 쉽게 말하기 쉽지만, 나를 위해, 분명히하기가 어렵습니다. –
이것은 직접 귀하의 질문에 대답하지 않지만 이것에 대한 나의 해결책은 부모를 먼저 저장하고 응답 기록을 관찰 한 다음 json 응답을 사용하여 자식에 부모를 설정 한 다음 자식을 커밋하는 것입니다. 그 반대도 가능합니다. – mehulkar
@MehulKar는 솔루션을 보여주는 코드로 답변을 게시 할 수 있습니까? – Intentss