validate로 걸리면 Model에서 오류 메시지를 받습니다.
이번에 한 일
소스 코드(일부)
app/model/user.js
extendModel: function(Model) {
_.extend(Model.prototype, {
/* validateプロパティだけど呼び出す時はisValid() */
validate: function(attrs){
for(var key in attrs){
var value = attrs[key];
switch(key){
case 'name':
if(value.length <= 0 || 20 < value.length){
this.errorMsg = '名前は1文字以上20文字以下です';
return 'Error: name';
}
break;
case 'age':
if(value.length <= 0 || isNaN(value)){
this.errorMsg = '年齢は数字のみです';
return 'Error: age';
}
break;
case 'email':
if(!(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/.test(value))){
this.errorMsg = 'Eメールが正しくありません';
return 'Error: email';
}
break;
}
}
},
errorMsg: ''
});
return Model;
}
app/controller/index.js
if(newUser.isValid()){
newUser.save();
alert('success');
$.userName.setValue('');
$.userAge.setValue('');
$.userEmail.setValue('');
} else{
alert(newUser.errorMsg);
}
이번에는 _.extend의 두 번째 인수에서 validate와 동일한 수준에서 메시지를 저장하기위한 속성을 선언하고 validate에 걸렸을 때 거기에 오류 메시지를 저장하는 방법을 시도해보십시오. 네.
내가 생각하는 것이므로, 아마 이것이 가장 쉬운 방법일까 생각합니다. (공식적으로 어쩌면 뭔가 쓰고 있다고 생각합니다만, 별로 보지 않기 때문에 다른 방법은 모릅니다)
결과적으로도 controller측에서 에러 메세지를 취득할 수 있었기 때문에 잘 되었을까라고 생각합니다.
시뮬레이터로 확인
이름 부분을 입력하지 않고 '등록'을 누르면
처럼 경고가 나옵니다. 잘 작동했습니다. :)
그런 다음 다른 입력이 validate로 걸렸다면
이런 식으로 오류 메시지를 얻을 수있었습니다.
Reference
이 문제에 관하여(validate로 걸리면 Model에서 오류 메시지를 받습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/to2ka/items/25c8d3d2763a1ab97b1a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)