Возникла непонятная ситуация:
c сервера (Laravel) приходит массив с ошибками, если их нет - то пустой массив [].
Все попытки проверить на пустой массив не увенчались успехом...
Пример если есть ошибка:
{"email":["These credentials do not match our records."]}
Не знаю почему, но Object.keys(errors).length не работает.
Пример использования:
computed: {
error() {
return !!Object.keys(this.errors).length;
}
},
mounted() {
console.log(this.errors);
console.log(this.error)
},
В консоли:
{"email":["These credentials do not match our records."]}
true
и
[]
true
Можно получить ключи массива через Object.keys(errors) и проверить их длину.
const errors = {"email":["These credentials do not match our records."]}
if (Object.keys(errors).length)
console.log('Ошибка найдена')
const errors2 = {}
if (Object.keys(errors2).length)
console.log('Во втором ошибка найдена')
Могу дать свою функцию для формирования строки сообщения из ошибок, вдруг пригодится:
function showServerError ({ data }) {
const { errors } = data
let message = ''
if (errors) {
for (let field in errors) {
if (errors.hasOwnProperty(field)) {
for (let error of errors[field]) {
// можете добавить префикс field(имя поля с ошибкой) если надо
message += `${error}\n`
}
}
}
} else {
message = data.message
}
// можете вывести через alert, например
alert(message)
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости