我在这个问题上花了几个小时,但我无法弄清楚:(我知道我大约一周前测试了该功能,我看到显示了 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 的行。但是,我没有看到 toastr :( 可能有什么问题?