Vue.js Vee validate(VueJS)-异步评估条件

Vue.js Vee validate(VueJS)-异步评估条件,vue.js,vuejs2,Vue.js,Vuejs2,我可以根据AJAX请求创建一个返回true/false的自定义验证规则吗?问题在于,当AJAX调用完成时,验证调用已经完成运行 我是否需要让规则设置/取消设置一个布尔变量,根据该变量字段有效/无效 const isValidNameRule = { getMessage(field) { return "The name must be unique." }, validate(validatingName) { var for

我可以根据AJAX请求创建一个返回true/false的自定义验证规则吗?问题在于,当AJAX调用完成时,验证调用已经完成运行

我是否需要让规则设置/取消设置一个布尔变量,根据该变量字段有效/无效

  const isValidNameRule = {
    getMessage(field)
    {
      return "The name must be unique."
    },
    validate(validatingName)
    {
      var formData = new FormData();
      formData.append("validatingName", validatingName);

      this.$http.post("/api/isValid?name=" + validatingName, formData)
        .then(function (response) {
          // success
          return true;
        }, function (response) {
          // error
          return false; 
        });
    }
  };

我不知道如何遵守诺言。 通过扩展其中一个官方样本,最终使其发挥作用:

 const customRule = {
    getMessage(field, params, data) {
      return (data && data.message) || 'Something went wrong';
    },
    validate(aValue) {

      return new Promise(resolve => {

        var formData = new FormData();
        formData.append("nameFilter", aValue);

        $.ajax({
          type: "POST",
          url: url,
          data: {
            action: "validate",
            value: aValue,
          }
        }).done(function (data) {

          if (!ok)
          {
            resolve({
              valid: false,
              data: {message: "Condition not met"}
            });
          }
          else
          {
            resolve({
              valid: !! aValue,
              data: undefined
            });
          }

        });

      });
    }
  };

我不知道如何遵守诺言。 通过扩展其中一个官方样本,最终使其发挥作用:

 const customRule = {
    getMessage(field, params, data) {
      return (data && data.message) || 'Something went wrong';
    },
    validate(aValue) {

      return new Promise(resolve => {

        var formData = new FormData();
        formData.append("nameFilter", aValue);

        $.ajax({
          type: "POST",
          url: url,
          data: {
            action: "validate",
            value: aValue,
          }
        }).done(function (data) {

          if (!ok)
          {
            resolve({
              valid: false,
              data: {message: "Condition not met"}
            });
          }
          else
          {
            resolve({
              valid: !! aValue,
              data: undefined
            });
          }

        });

      });
    }
  };