Vue 2.0 입문 시리즈(13)대상 지향 개념 으로 퀘 스 트 리스트 구현(2)
3552 단어 vue.js
class Form {
constructor(data) {
this.originData = data; //form.data.name
for (let field in data) {
this[field] = data[field]; // form.name
}
this.errors = new Errors();
}
}
필드 에 접근 할 수 있 도록
form.name
순환 을 사용 하여 속성 을 할당 합 니 다.폼 의 데이터 와 오류 메 시 지 는 현재
for
인 스 턴 스 를 통 해 접근 하고 있 기 때문에 다른 곳 에서 도 수정 해 야 합 니 다.onSubmit(){
this.$http.post('/tasks',this.$data)
.catch(error => this.form.errors.record(error.response.data));
},
보기 부분 도 변경 사항 에 응답 해 야 합 니 다:
다음은 폼 의 다른 요청 을 모두
form
에 밀봉 합 니 다.완전한Form
종 류 는 다음 과 같다.class Form {
/**
*
*/
constructor(data) {
this.originalData = data; //form.data.name
for (let field in data) {
this[field] = data[field]; // form.name
}
this.errors = new Errors();
}
/**
*
*/
reset(){
for (let field in this.originalData) {
this[field] = '';
}
this.errors.clear();
}
/**
*
* @return {[type]} [description]
*/
data(){
let data = {};
for (let property in this.originalData) {
data[property] = this[property];
}
return data;
}
post(url) {
return this.submit('post', url);
}
put(url) {
return this.submit('put', url);
}
patch(url) {
return this.submit('patch', url);
}
delete(url) {
return this.submit('delete', url);
}
submit(requestType, url) {
return new Promise((resolve, reject) => {
axios[requestType](url, this.data())
.then(response => {
this.onSuccess();
resolve(response.data);
})
.catch(error => {
this.onFail(error.response.data);
reject(error.response.data);
});
});
}
onSuccess(data) {
this.reset();
}
onFail(errors) {
this.errors.record(errors);
}
}
쓰다
onSubmit(){
this.form.post('/tasks')
.then(message => alert(message))
.catch(message => console.log(message));
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[백견불여일타/Vue.js] 4장 - 입력 폼 데이터 가져오기v-model 데이터 입력 select 지난 장에서는 v-bind를 이용해서 HTML 태그 속성 값을 Vue로 다루는 법을 배웠습니다. 이번에는 사용자가 입력한 데이터를 Vue로 가져오는 법에 대해 다룹니다. 웹 페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.