Я пытаюсь получить доступ к стандартной ошибке "ошибок" пакета 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>