el-form에서 폼 동적 prop 검증

4221 단어 element-ui

el-form에서 폼 동적 prop 검증


어느 날 요청이 들어왔습니다.페이지 데이터를 관리할 때 개별 필드 값은 다중 언어를 지원해야 합니다.전체 페이지 데이터는 한 부만 가능합니다
그래서 form에 대응하는 필드만 대상 형식으로 바꿀 수 있습니다
form: any = {
    name: "",
    url: "",
    title: {}
  };

위 코드에서 보듯이 타이틀 필드는 하나의 대상으로 각 언어에 대응하는 저장 필드를 넣을 준비를 하고 있다
그리고 언어는 동적으로 전환할 수 있기 때문에 저는 언어 변수currentLang으로만 쓸 수 있어요.
<el-form-item
  label="title"
  :prop="`title.${currentLang}`"
  :rules="rules.titleRule"
>
  <el-input
    size="small"
    v-model="form.title[currentLang]"
  ></el-input>
</el-form-item>

위의 prop 속성 값을 중점적으로 보면 form 아래의 검색 경로입니다. 예를 들어currentLang = "en-us", 그럼 prop은 "title.en-us"currentLang = "zh-cn"이고 prop은 "title입니다.zh-cn”
그리고 rules 제 코드는 사실...
rules = {
...
	titleRule: [
        {
          validator: this.titleValidate,
          trigger: "blur"
        }
      ]
}

//  
 titleValidate(rule, value, callback) {
   if (value) {
     ...
   } else {
     ...
   }
   callback();
 }

기본적으로 위의 문법에 따라 정상적인 검증 기능을 가질 수 있다.사실 이것에 따라form이 수조인 경우를 유추할 수 있는데, 단지 prop의 대상 경로를 수조의 읽기 경로로 바꾸면 된다

좋은 웹페이지 즐겨찾기