Javascript 是否可以通过传递参数(Vuelidate)重新使用计算属性
我将Vuelidate用于具有多个部分的表单。每个部分都有formData对象和名称。每一个内部都嵌套一个ZIP对象,用于通过大量验证来验证邮政编码……必需、数字、minlength和maxlength。我想做的是使用一个计算属性zipCodeValid()并在这两个属性上使用。到目前为止,我有两个不同的针对每个部分的计算属性,这并不可怕,但我希望看到一个用于更干净的方法Javascript 是否可以通过传递参数(Vuelidate)重新使用计算属性,javascript,vue.js,vuelidate,Javascript,Vue.js,Vuelidate,我将Vuelidate用于具有多个部分的表单。每个部分都有formData对象和名称。每一个内部都嵌套一个ZIP对象,用于通过大量验证来验证邮政编码……必需、数字、minlength和maxlength。我想做的是使用一个计算属性zipCodeValid()并在这两个属性上使用。到目前为止,我有两个不同的针对每个部分的计算属性,这并不可怕,但我希望看到一个用于更干净的方法 Zip validation: zip: { required, nume
Zip validation:
zip: {
required,
numeric,
minLength: minLength(5),
maxLength: maxLength(5),
}
computed: {
sectionOneZipValid() {
return (
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.numeric) ||
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.minLength) ||
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.maxLength)
)
},
sectionTwoZipValid() {
return (
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.numeric) ||
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.minLength) ||
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.maxLength)
)
}
}
是的,你可以通过这样的论证
computed: {
sectionZipValid() {
return sec => { return (
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.numeric) ||
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.minLength) ||
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.maxLength)
)}
},
}
它可以被称为
sectionZipValid('secOne')
OR
sectionZipValid('secTwo')