뷰 모델의 다른 관찰 가능 항목에 영향을주기 때문에 두 개의 다른 서버 측 유효성 검사기를 사용합니다.
원래 당신이 당신 조회를 수행 POST 요청을 수락 엔드 포인트를 생성하고 쿼리의 결과에 따라 true 또는 false를 반환해야하는 서버에 그런 다음
knockout validation readme
ko.validation.rules['isEmailUnique'] = {
validator: function(val, param){
var isValid = true;
$.ajax({
async: false,
url: '/validation/isEmailUnique',
type: 'POST',
data: { value: val, param: param },
success: function(response){
isValid = response === true;
},
error: function(){
isValid = false; //however you would like to handle this
}
});
return isValid;
},
message: 'The Email is not unique'
};
에서 가져옵니다.
당신은 암호 강도 확인을 위해 매우 동일한 일을 사용할 수 위의 검증을
this.email = ko.observable()
.extend({
isEmailUnique: {
message: 'Something else perhaps? It will override the message in the validator'
}
});
을 사용합니다.
이와 같은 유효성 검사기를 사용하면 관찰 값이 변경되면 유효성 검사가 실행되므로 유효성 검사를 수행하는 데 유용한 방법이 될 수 있습니다.
나는 그 readme에서 그 게시물을 보았지만, 한 번의 호출로 제출할 때 모든 서버 측 유효성 검증을하고 싶습니다. 등록이 잘 되었다면, 틀린 것을 반환하십시오. – NPehrsson
그런 경우에는 해당 특정 경우에 유효성 검사 플러그인을 전혀 사용하지 않아야합니다. 저장하려는 데이터를 POST하고 결과를 처리하십시오. 오류를 일으킨 필드 옆에 오류 메시지를 배치하려면 해당 규칙을 알아야합니다. 어쩌면 유효성 검사 json이나 바인딩 할 수있는 것을 필터링 할 수있는 계산 된 observables 일 수도 있습니다. 그러나, 녹아웃 유효성 검사는 거기 당신을 도울 수 없다. –
: (okeay, 필자는 다른 것들을 필요에 따라 사용하고 싶었습니다. 따라서 서버에서 결과를 수신 할 때 유효성 검사 오류를 트리거하는 방법이 없습니다. – NPehrsson