저장 작업이 잘못되면 Breeze 엔터티의 이전 상태를 복구해야합니다.순환 참조가있는 Breeze 엔터티를 복사하는 방법
나는 angular.copy을 사용하면 내가 순환 참조 예외를 얻을? 브리즈 엔티티를 복사 할 수있는 방법을 발견하지 않았습니다 "형식 오류 : JSON에 원형 구조를 변환"나는 더글라스 크록 포드의 그것을 시도
구현 사이클 .js,하지만 같은 개체를 다시 얻을 수 없습니다
저장 작업이 잘못되면 Breeze 엔터티의 이전 상태를 복구해야합니다.순환 참조가있는 Breeze 엔터티를 복사하는 방법
나는 angular.copy을 사용하면 내가 순환 참조 예외를 얻을? 브리즈 엔티티를 복사 할 수있는 방법을 발견하지 않았습니다 "형식 오류 : JSON에 원형 구조를 변환"나는 더글라스 크록 포드의 그것을 시도
구현 사이클 .js,하지만 같은 개체를 다시 얻을 수 없습니다
저장 작업이 실패하면 클라이언트 측 상태는 여전히 "추가", "수정"또는 "삭제"됩니다. 변경 사항은 저장에 성공한 경우에만 허용됩니다. 이렇게하면 변경 사항을 재구성하지 않고도 문제를 "수정"한 후에 동일한 엔티티를 "다시 저장"할 수 있습니다.
Breeze EntityAspect.rejectChanges을 사용하여 엔티티를 마지막으로 쿼리 한 시점의 상태로 되돌릴 수도 있습니다.
엔터티를 복사하는 가장 간단한 방법은 Breeze EntityManager.createEntity 메서드를 사용하고 원본 엔터티의 데이터 속성 만 포함 된 개체를 전달하는 것입니다. 이 기능이 작동하는 이유는 내부 엔터티에 createEntity 호출의 마지막 단계로 발생하는 새 엔터티가 첨부되면 Breeze가 외래 키 데이터 속성을 기반으로 모든 탐색 속성을 자동으로 연결하기 때문입니다.
그래서 당신은 실제로이 코드 조각을 테스트하지 않았다 (이 같은 것을 시도 할 수 있지만,이 방법은 확실히 작업을 수행합니다.
function cloneEntity(sourceEntity, keyName, newKeyValue) {
var sourceEntityType = sourceEntity.entityType;
var sourceDataProperties = sourceEntityType.dataProperties;
var configEntity = {};
sourceDataProperties.forEach(function(dp) {
configEntity[dp.name] = sourceEntity.getProperty(dp.name);
});
// you will need to give the entity a unique key before calling createEntity
// you could also get the keyName from metadata but I was too lazy to do that here.
configEntity[keyName] = newKeyValue;
var cloneEntity = myEntityManager.createEntity(fooEntityType, configEntity, breeze.EntityState.Added);
return cloneEntity;
}
감사합니다. Jay. – yeraycaballero
EntityAspect.rejectChanges()을 사용해 보셨습니까?
Returns the entity to an EntityState of 'Unchanged' by rejecting all changes made to it since the entity was last queried had 'rejectChanges' called on it.
방금 manager.rejectChanges()를 호출하면 원하는 결과가 나타납니다. 귀하의 답을 고맙게 생각하지만 순환 참조가있는 breeze 엔티티를 복사하는 방법을 정말 알고 싶습니다. 환호 – yeraycaballero
를 VAR thisEntity = thatEntity이 충분하지 왜 내가 꽤하지 않습니다 –
thisEntity = thatEntity는 객체 복사가 아닌 참조 사본입니다.이 방법으로 thisEntity가 변경되면 thatEntity에 영향을 미칩니다. – yeraycaballero