2015-01-05 3 views
0

동일한 복합 유형을 사용하는 두 개의 데이터 속성이있는 시나리오를 보았습니다. 아래는 사용 된 개체입니다.단일 복합 유형 데이터 속성에 대한 여러 유효성 검사기

{ 
     "name": "dataProperty1", 
     "complexTypeName": "ComplexType:#test" 
    }, 
    { 
     "name": "dataProperty2", 
     "complexTypeName": "ComplexType:#test" 
    } 

복합 타입 :

{ 
    "shortName": "ComplexType", 
    "namespace": "test", 
    "isComplexType": true, 
    "dataProperties": [ 
      { 
      "name": "fieldA", 
      "dataType": "String", 
      "maxLength": 50 
     } 
] 
} 

이제 내 문제는, 두 데이터 속성 (dataProperty1 및 dataProperty2)는 복합 형 데이터 속성 (fieldA)에 대한 특정 검증을 겪고있다.

복잡한 데이터 속성 (fieldA)에 대해 2 개의 다른 유효성 검사기를 추가하려고했지만 두 데이터 속성 모두에 대해 두 가지 유효성 검사기가 실행 중입니다.

  { 
       "name": "fieldA", 
       "dataType": "String", 
       "maxLength": 50, 
       "validators"[ 
         { 
         //name :validationA 
         }, 
         { 
         //name :validationB 
         } 
       ] 
      } 

은 'dataProperty1는'단지 'validationA가'실행해야하고 'dataProperty2'에 대해 단지 'validationB가'실행해야을 위해의가 있다고 가정 해 봅시다.

특별히이 시나리오를 처리해야합니까?

이 문제를 해결하는 데 도움을주십시오.

미리 감사드립니다.

답변

0

유효성 검사 기능 내에서 'context'매개 변수에는 'propertyName'속성이 있습니다. 이 'propertyName'은 속성에 대한 경로이므로 'billingAddress'와 'locationAddress'를 구분할 수 있습니다. 또한 complexType의 하위 속성을 확인하면 'context.propertyName'은 속성에 점선으로 표시된 경로 (예 : 'billingAddress.city'vs 'locationAddress.city')가됩니다.

그래서 내가 발리에서 속성 이름을 얻을 수 있어요이

var valFn = function (v, context) { 
    var propName = context.propertyName; 
    // change the validation logic here depending on the 'propName'; 
    }; 
    var myValidator = new Validator("MyValidator", valFn, 
     { messageTemplate: "Custom message template..." }); 
+0

같은 검증을 작성할 수 있습니다,하지만 어떻게 난 이미 바람에 등록 된 검증을 건너 뛰시겠습니까. 'billingAddress.city'에 대해 하나의 유효성 검사기 만 실행하면되지만 'city'복합 유형 속성에 대해 두 개의 유효성 검사기가 등록되어 있다고 가정 해 보겠습니다. 또는 다른 데이터 속성에 사용 된 동일한 복합 유형 속성에 대해 두 가지 유효성 검사를 수행 할 수있는 방법이 있습니까? –

+0

유효성 검사기에서 propertyName을 확인하고 관련이없는 경우 noop을 수행하십시오. 즉 유효성 검사기는 항상 실행되지만 'billingAddress.city'를 제외한 모든 '도시'속성에 대해 항상 성공합니다. –

+0

나는 그것을 더 복잡하게 만들고 있다고 생각한다. 간단히 말하자면 'city'라는 복잡한 유형의 데이터 속성에 필요한 유효성 검사기가 있습니다. 복합 유형은 두 개의 데이터 특성 'property1'과 'property2'에 의해 사용됩니다. 이제, 나는 'property2'가 아닌 'property1'에 대해서만 도시가 요구되기를 바랍니다. 이 사건에 대한 제안이 있니? –