Как проверить все ссылки с vee-validate? - PullRequest
0 голосов
/ 15 марта 2020

У меня есть динамические c компоненты, которые необходимо проверить.

У меня есть массив, и я пу sh мои компоненты там. Функция for l oop прекрасно работает.

    validateForm() {
      const PROMISES = [this.$refs.contactDetailsForm.$refs.contactDetails]
      for (let i = 1; i <= this.count; i++) {
        PROMISES.push(this.$refs[`passengerForm${i}`][0])
      }


      return Promise.all(PROMISES)
    },

Но проблема в том, что я не знаю, как вернуть результаты проверки. Я хочу результаты этой функции в другой функции (Promise). как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Не проверено, но Promise.all возвращает массив результатов для обещаний. Что вам нужно сделать, это активировать проверку для всех вещей, для которых вы хотите узнать результат, собрать эти обещания и затем проверить результаты в Promise.all. Вы не дали достаточно кода, чтобы ответить на этот вопрос полностью, но это примерно так:

validateForm() {
  //both of these I added validate() to because I'm hoping they are references to ValidationObservers
  const PROMISES = [this.$refs.contactDetailsForm.$refs.contactDetails.validate()]
  for (let i = 1; i <= this.count; i++) {
    PROMISES.push(this.$refs[`passengerForm${i}`][0].validate())
  }

  return Promise.all(Promises);
}

Тогда, куда бы вы ни звонили, вы должны делать:

this.validateForm().then((values) => {
    this.formIsValid = values.every((result) => result));
    //if the things above are ValidationProviders rather than VO, you have to use result.valid instead of result
});
0 голосов
/ 15 марта 2020

это решение:

    validateForm() {
      const PROMISES = [this.$refs.contactDetailsForm.$refs.contactDetails]
      for (let i = 1; i <= this.count; i++) {
        PROMISES.push(this.$refs[`passengerForm${i}`][0])
      }

      return new Promise((resolve, reject) => {
        PROMISES.forEach(async (item) => {
          const STATUS = await item.validate()
          STATUS ? resolve(STATUS) : reject(STATUS)
        })
      })
    }
...