2013-04-17 2 views
0

Breeze 시나리오에 따라 유효성 검사를 처리하는 권장 방법은 무엇입니까?Breeze에서 여러 속성 유효성 확인

시나리오 : 내가 startDate, endDateuseDate 필드 엔티티를 가지고있다. useDate이 참일 경우 startDateendDate이 유효한 날짜이며 endDate> startDate임을 확인하고 싶습니다.

Breeze 설명서에서 제안하는 접근 방식은 사용자 지정 검사기를 만들고이를 엔터티에 등록하는 것입니다. 이 접근법에서 볼 수있는 문제는 엔터티의 오류 수집에 유효성 검사 오류가 추가되도록 이러한 세 가지 속성 중 하나가 변경 될 때마다 수동으로 validateEntity()을 호출해야한다는 것입니다. 단일 속성에 사용자 지정 유효성 검사기를 추가하는 다른 권장 방법은 엔터티 (현재 속성 값)에 대한 액세스를 제공하지 않으므로이 옵션도 좋지 않습니다.

엔터티의 각 녹아웃 속성 변경 이벤트를 구독 한 다음 validateEntity()을 호출 할 수는 있지만 어색해 보입니다.

엔티티에 사용자 지정 엔티티 수준 검사기를 추가 할 수 있지만 하나 이상의 속성과 연결하여 연결된 속성 중 하나가 변경되면 엔티티 수준 검사기가 호출되도록 할 수 있습니까? Breeze에서 일반적인 유효성 검사 유스 케이스 시나리오가 누락 된 것처럼 보입니다.하지만 아마도 누락되었습니다.

감사, 리처드

답변

1

나는 이러한 속성의 변경이 같은 논리를 트리거 할 수 있도록 당신이은 시작일, 종료일 및 useDate 각 필드에 대한 사용자 정의 유효성 검사기 기능을 적용 할 수 있다고 생각. 당신이 엔티티에 다른 속성에 액세스 할 수 있도록 엔티티 속성을해야합니다 유효성 검사 함수에 전달 된 상황 객체처럼 보이는 브리즈 코드를 보면

(테스트하지). 당신이를 원하는 경우, 또한 UI에 바인딩 knockout.validation 규칙되기 위해 그 유효성 검사 기능을 복사 할 this post에서 코드를 사용 , 수 후

.

관련 문제