Если пользователь вводит неверные данные, ошибка: Если пользователь вводит неверные данные, ошибка:

Я хочу, чтобы синие помечены "ошибки" в предупреждении. Я пытался с этим кодом:

    create(doctor: Doctor): Promise<Response | Doctor> {
    return this.http
    .post(this.doctorsUrl, JSON.stringify(doctor), {headers: this.headers})
    .toPromise()
    .then(() => doctor)
    .catch(this.handleError);
  }

  private handleError(error: Response): Promise<Response>{
    console.error('An error occurred', error);
    alert(error.json());
    return Promise.reject(error);
 }

Но я получаю объект Object только. Как получить эти "ошибки"? Должен ли я создать новый класс для ошибки?

Привет, Бартек :)

1
Bartłomiej Matyjaszczyk 27 Фев 2018 в 14:33

5 ответов

Лучший ответ

Вы можете преобразовать объект JSON в строку, используя JSON.stringify ()

Оповещение ( JSON.stringify ( error.json ( ) )) ;

Или вы можете получить значение из объекта ошибки как

alert (error._body.type) // выдаст вам type = error

3
S K 27 Фев 2018 в 11:48

Есть 2 способа обработать ошибку или показать сообщение об ошибке.

Метод 1:

let message= JSON.parse(error._body).errors;

Вы можете напрямую показать сообщение в интерфейсе, но это применимо только в случае единственной ошибки.

Метод 2: , когда ошибка в форме объекта

let message = "";
errorMessage='';
for (let prop in JSON.parse(error._body).errors) {message +=JSON.parse(error._body).errors[prop][0] + "\n"; this.errorMessage = message;
                } 
0
Vega 24 Сен 2018 в 06:43

Это работает со мной

const errorObjectAsString = JSON.stringify(error);
0
ahmednabil88 19 Окт 2019 в 17:09

Попробуйте эту строку кода

let obj :ValidationError = JSON.parse(JSON.stringify(error.error));

Stringify: преобразовать JSON в строку

0
Amirouche Zeggagh 6 Май 2019 в 13:58

Вы можете разобрать строку в объект, используя метод JSON.parse(),

JSON.parse(error.json()._body).errors[0]

Даст вам сообщение об ошибке в одиночку. (Если я не ошибаюсь, еще извините)

1
zaidfazil 27 Фев 2018 в 11:57