vue.js - 无法从父组件验证子组件
问题描述
我有一个选择框组件。我想在其他组件中重用它。我可以通过在自定义输入组件上添加 v-model 指令来重用其他组件中的选择框组件,但无法使用 vuetify 验证规则从其他组件中验证选择框组件。
测试.vue
<v-form ref="form" class="mx-4" v-model="valid">
<Selectbox :name="ward_no" :validationRule="required()" v-model="test.ward_no"/>
<v-btn primary v-on:click="save" class="primary">Submit</v-btn>
export default {
data() {
return {
test: {
ward_no: ''
},
valid: false,
required(propertyType) {
return v => (v && v.length > 0) || `${propertyType} is required`;
},
};
}
选择框.vue
<select @change="$emit('input', $event.target.value)" >
<option
v-for="opt in options"
:key="opt.value"
:value="opt.value"
:selected="value === opt.value"
>
{{errorMessage}}
{{ opt.label || "No label" }}
</option>
</select>
export default {
props: {
label: {
type: String,
required: true
},
validationRule: {
type: String,
default: 'text',
validate: (val) => {
// we only cover these types in our input components.
return['requred'].indexOf(val) !== -1;
}
},
name: {
type: String
},
value: {
type: String,
required: true
}
},
data() {
return {
errorMessage: '',
option: "lorem",
options: [
{ label: "lorem", value: "lorem" },
{ label: "ipsum", value: "ipsum" }
]
};
},
methods:{
checkValidationRule(){
if(this.validationRule!="")
{
return this.validationRule.split('|').filter(function(item) {
return item();
})
// this.errorMessage!= ""?this.errorMessage + " | ":"";
}
},
required() {
this.errorMessage!= ""?this.errorMessage + " | ":"";
this.errorMessage += name+" is required";
},
}
};
解决方案
推荐阅读
- ios - 显示数组的 SwiftUI 列表未更新
- php - 检查 WooCommerce 购物车页面上是否启用了特定的送货方式
- docker - Docker-compose:显示容器的资源使用情况
- vb.net - 从行“X”到布尔值的转换无效
- middleware - 具有业务规则的中间件是错误的吗?
- java - AAPT:错误:找不到属性 android:clipToOutline
- flask - Flask WTForm:提交按钮不会产生错误
- javascript - 未正确假定 JS 获取请求的标头参数
- javascript - 错误:属性或方法“用户”未在实例上定义,但在渲染期间被引用
- javascript - 使用多个条件检查数组中的任何两个对象是否相等