2015-06-17 2 views
0

Я только что прошел через угловую-fullstack приложения и я наткнулся на этот кусок кода:поймать исключение в angularJS

catch(function(err) { 
     err = err.data; 
     $scope.errors = {}; 

     // Update validity of form fields that match the mongoose errors 
     angular.forEach(err.errors, function(error, field) { 
     form[field].$setValidity('mongoose', false); 
     $scope.errors[field] = error.message; 
     }); 

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

Этот фрагмент кода в контроллере

Может кто-нибудь пожалуйста объяснить всю процедуру с примером?

+0

Это не исключение. Это просто обратный вызов ошибки обещания. Обещание, похоже, отклонено с ответом HTTP, чье тело содержит поле с именем «errors», которое представляет собой карту поля: ошибка. Каждая ошибка имеет сообщение. –

ответ

1

Похоже, что вы «ломаете» ошибки (возможно, возвращены из службы обслуживания) и сопоставляете каждую ошибку в массиве ошибок с конкретным полем.

Тогда действительность этого поля устанавливается на false, что является чем-то удерживаемым угловой формой.

Наконец, существует некоторая привязка к $scope.errors, которая отображает каждое сообщение об ошибке, которое добавляется в массив $scope.errors.

Похож на довольно простую и типичную проверку. Он не имеет ничего общего с обработкой угловой ошибки ядра и просто способ добавить информацию проверки в форму/страницу.

+0

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

+0

, я добавил также привязку {{errors.email}} –

Смежные вопросы