angularJs - не отображается ошибка toastr
Я потратил несколько часов на эту проблему, и я не могу понять это:(Я знаю, что я тестировал эту функциональность около недели назад и увидел 2 сообщения об ошибках toastr (хотя я не хотел двух из них). Я не уверен, что именно изменилось, но теперь я не могу отобразить ни одного:(Я не вижу сообщения toastr вообще.
Мой код:
app.directive('serverError', ['resourceFactory', 'spinnerService', 'toastr', '$log',
function (resourceFactory, spinnerService, toastr, $log) {
return {
restrict: 'A',
controller: ['$scope', '$timeout', function ($scope, $timeout) {
log = $log.getInstance("serverError");
var errorToastConfig = {
closeButton: true,
timeOut: 0,
extendedTimeOut: 0,
tapToDismiss: false,
preventDuplicates: true
};
var title = resourceFactory.getResource("Messages", "applicationError");
$scope.$on('sm:badRequest', function (event, data) {
if (!$scope.errorHandled && !$scope.showForm) {
log.debug("Handling bad request");
let errorMsg = "";
angular.forEach(data, function (value, key) {
if (value.message == '') value.message = 'The ' + value.property + ' value is invalid.'
errorMsg = errorMsg + value.message + " ";
});
errorMsg = errorMsg.trim();
$scope.errors = data;
toastr.clear();
if (errorMsg=="")
errorMsg = resourceFactory.getResource('Messages', 'errorOnForm');
title = resourceFactory.getResource("Messages", "badRequest");
toastr.error(errorMsg, title, errorToastConfig);
}
$scope.disableAction = false;
});
А потом еще и в контроллере:
function (error) {
spinnerService.stopSpinner('loaditemtree');
$scope.stopExecution = true;
if (error.hasOwnProperty("data")) {
toastr.clear();
let errorMsg = error.data[0].message;
toastr.error(errorMsg);
}
});
Я вижу в консоли [ItImagesSearchController] Инициализация контроллера поиска изображений запускается... /SiriuswareControl/api/itDraftHeaders/1019 Не удалось загрузить ресурс: сервер ответил с состоянием 400 (неверный запрос) 2angular.js:14525 [serverError] Обработка неверного запроса
Я также отслеживаю свой код в контроллере и вижу, как выполняется строка с toastr. Однако я не вижу тостра:(Что может быть не так?
1 ответ
Я полагаю, что я понял это, но я как бы вернулся к исходной точке 1. Я хотел предотвратить отображение дублированных сообщений toastr, поэтому у меня есть protectDuplicates: true в конфигурации сервера toastr error. Однако, это так или иначе не сделало ни одно из сообщений, которые будут отображены. Когда я немного изменил сообщение в своем контроллере, я теперь увидел оба сообщения toastr. Как я могу сделать только один из них, чтобы показать?