首页 > 解决方案 > Vee 验证在 vue 设置后获取先前的值

问题描述

我想通过代码更新 v-model 值并验证该字段。所以我使用vue.set方法来更新值,然后调用$validator.validate。我的代码是这样的。

Vue.set(model,property, value);
vm.$validator.validate(property).then(function (valid) {
            if (!valid) {
                vm.$validator.flag(property, {
                    touched: true,
                    dirty: true
                });
            } 
        });

我的验证规则代码是这样的:

Validator.extend("val_compulsory", {
getMessage(field, args) {
    return args[0];
},
validate(value) {
    return {
        valid: !!value,
        data: {
            required: true
        }
    };
}
}, { computesRequired: true });

但是在 val_compulsory 验证器中,我总是得到vue.set之前的先前值。有没有办法在 vue.set 之后获得 vee-validator 验证方法的最新值?

标签: javascriptvuejs2vuexvee-validate

解决方案


尝试这个:

Vue.set(model,property, value);
vm.$nextTick(function() {
    vm.$validator.validate(property).then(function (valid) {
        if (!valid) {
            vm.$validator.flag(property, {
                touched: true,
                dirty: true
            });
        } 
    });
});

推荐阅读