我的目标是定义我的规则一次,然后将它们重用于我的所有领域。为此,我需要将额外的参数传递给我的规则,例如一个 v-text-field 的 maxlength 为 20,而另一个的 maxlength 为 50。从我所看到的,只有价值被传递了。如何向我的规则添加额外的参数?
<template>
<v-input :rules=[rules.max(20)] v-model="field1" />
<v-input :rules=[rules.max(50)] v-model="field2" />
</template>
<script>
data() {
rules: {
max(v, maxnum) { //maxnum is the parameter I want to add so that I can pass different values and reuse the same rule on multiple fields
return (v || '').length <= maxnum || 'Max exceeded';
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
Cha*_*nda 15
您需要一个返回规则函数的函数。包装器函数应该接受rules函数不知道的任何额外参数(值以外的任何参数):
<template>
<v-input :rules=[rules.max(20)] v-model="field1" />
<v-input :rules=[rules.max(50)] v-model="field2" />
</template>
<script>
data() {
rules: {
max(maxNum) {
return v => (v || '').length <= maxNum || 'Max exceeded';
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3832 次 |
| 最近记录: |