Vee验证在设置Vue后获得先前的值

时间:2019-03-19 09:06:01

标签: javascript vuejs2 vuex vee-validate

我想通过代码更新v模型值并验证该字段。因此,我正在使用 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验证方法的最新价值?

1 个答案:

答案 0 :(得分:2)

尝试一下:

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
            });
        } 
    });
});