ErrorBag «Ошибки» vee-validate не могут быть доступны из метода в vuejs. Какие-либо предложения? - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь получить доступ к стандартной ошибке "ошибок" пакета vee-validate одним из моих vuejs методов. Я получаю эту ошибку в браузере.

«Свойство« ошибки »не существует для типа« TemperatureTest »»

Это потому, что внутри метода vuejs (showOperatingTemperaWarning) этот this.errors не определен .

Однако на снимке экрана показано, что «ошибки» доступны в контексте и работают нормально в html.

Любая идея, почему this.errors недоступен в методе showOperatingTemperaWarning и как мы можем достичь этого?

Вот код, который я пробовал.

<template>
    <div>
        <label htmlFor="'temperature'" class="col-5 col-lg-4 col-form-label">Temperature</label>
        <div class="col-7 col-lg-8">
            <div class="input-group">
                <input type="text" class="form-control" v-validate="'required|max_value:70'"
                       :class="{ 'is-invalid': errors.has('temperature')}" :name="'temperature'" :id="'temperature'" :key="'temperature'"
                       v-model="temperature" />
            </div>
            <div class="invalid-feedback d-block" v-show="errors.has('temperature')">{{ errors.first('temperature') }}</div>
        </div>
        <span v-if="showOperatingTemperatureWarning('temperature')">Temperature is high</span>
    </div>
</template>

<script lang="ts">
import Vue from "vue";
import Component from "vue-class-component";

@Component({
  $_veeValidate: { validator: "new" }
})
export default class TemperatureTest extends Vue{
  temperature: number = 35;
  temperatureLimit: number = 50;

  showOperatingTemperatureWarning(fieldReference: number) {
      let hasErrors = this.errors.has(fieldReference);
      return !hasErrors && this.temperature > this.temperatureLimit;
  }   
}
</script>

enter image description here

...