나는 간단한 breeze/knockout 기반 SPA를 보유하고 있습니다. 엔티티 목록에 대해 "단일 저장"옵션을 구현해야했습니다. 편집은 별도의 팝업이 아닌 목록에서 수행해야했습니다. 서버 저장에서버 측 변경 후 breeze 클라이언트 엔터티가 업데이트되지 않습니다.
은 ATTR 엔티티의 특정 attrs에 업데이트 된 것을 확인하고 또한 "마지막 업데이트 날짜"를 업데이트 할 것입니다.
하나의 엔티티 관리자가 엔티티 목록을 서버에서 가져 왔습니다.
은 하나가 임시 엔티티 관리자에 주요 엔티티 관리자에서 수출 및 수입 된 업데이트 및 개체를 저장할 준비 저장 가능합니다. 저장이 수행되고 (확인 인 경우) 개체가 다시 내보내지고 기본 엔터티 관리자로 다시 가져옵니다. 새로운 "마지막 업데이트 날짜"값이 다시 MainEntityManager 프로세스 재 내보내기/가져 오기에 저장 한 후 복사되지 않습니다처럼function saveSingle(entity)
{
var tempMgr = MainEntityManager.createEmptyCopy();
var exp = MainEntityManager.exportEntities([entity]);
tempMgr.importEntities(exp, {
mergeStrategy: breeze.MergeStrategy.PreserveChanges });
tempMgr.saveChanges()
.then(function (saveResult) {
var reImp = tempMgr.exportEntities();
MainEntityManager.importEntities(reImp);
entity.Last_Updated_Date(saveResult.entities[0].Last_Updated_Date());
entity.entityAspect.entityState = breeze.EntityState.Unchanged;
logger.success("changes saved");
})
.fail(function() {
logger.error("Single Save failed: " + error.message);
});
}
그러나, 그것은 보인다. 나는이 문제를 해결해 봤지만이 구현에서 잘못된 점을 알았고 "단일 엔티티 저장"기능을 구성하는 더 좋은 방법이 있는지 궁금해합니다.
의견 및 질문 환영합니다!