Привет! Я разработал веб-приложение на Angular 5. Я использую службу оповещений для отображения сообщения об ошибке.Теперь я могу отобразить сообщение об ошибке, но оно исчезает после отображения сообщения об ошибке.Мое требование - сообщение об ошибке не должно исчезать само по себе, и оно должно закрываться только тогда, когда пользователь нажимает на крестик.У меня ниже реализация класса обслуживания предупреждений.
export class AlertService {
private messages = new Subject<AlertMessage>();
private stickyMessages = new Subject<AlertMessage>();
showMessage(summary: string)
showMessage(summary: string, detail: string, severity: MessageSeverity)
showMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity)
showMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity)
showMessage(data: any, separatorOrDetail?: string, severity?: MessageSeverity) {
if (!severity)
severity = MessageSeverity.default;
if (data instanceof HttpResponseBase) {
data = Utilities.getHttpResponseMessage(data);
separatorOrDetail = Utilities.captionAndMessageSeparator;
}
if (data instanceof Array) {
for (let message of data) {
let msgObject = Utilities.splitInTwo(message, separatorOrDetail);
this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, false);
}
}
else {
this.showMessageHelper(data, separatorOrDetail, severity, false);
}
}
}
Код Showmessagehelper.
private showMessageHelper(summary: string, detail: string, severity: MessageSeverity, isSticky: boolean) {
if (isSticky)
this.stickyMessages.next({ severity: severity, summary: summary, detail: detail });
else
this.messages.next({ severity: severity, summary: summary, detail: detail });
}
showStickyMessage(summary: string)
showStickyMessage(summary: string, detail: string, severity: MessageSeverity, error?: any)
showStickyMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity)
showStickyMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity)
showStickyMessage(data: string | string[] | HttpResponseBase, separatorOrDetail?: string, severity?: MessageSeverity, error?: any) {
if (!severity)
severity = MessageSeverity.default;
if (data instanceof HttpResponseBase) {
data = Utilities.getHttpResponseMessage(data);
separatorOrDetail = Utilities.captionAndMessageSeparator;
}
if (data instanceof Array) {
for (let message of data) {
let msgObject = Utilities.splitInTwo(message, separatorOrDetail);
this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, true);
}
}
else {
if (error) {
let msg = `Severity: "${MessageSeverity[severity]}", Summary: "${data}", Detail: "${separatorOrDetail}", Error: "${Utilities.safeStringify(error)}"`;
switch (severity) {
case MessageSeverity.default:
this.logInfo(msg);
break;
case MessageSeverity.info:
this.logInfo(msg);
break;
case MessageSeverity.success:
this.logMessage(msg);
break;
case MessageSeverity.error:
this.logError(msg);
break;
case MessageSeverity.warn:
this.logWarning(msg);
break;
case MessageSeverity.wait:
this.logTrace(msg);
break;
}
}
this.showMessageHelper(data, separatorOrDetail, severity, true);
}
}
Я использую службу предупреждений, как указано ниже в моих компонентах.
this.alertService.showMessage(caption, message, MessageSeverity.error);
Над сообщением об ошибке отображается сообщение об ошибке в правом верхнем углу (красный цвет с крестиком).Это сообщение об ошибке исчезает, может быть через 2 секунды.Я хочу, чтобы сообщение об ошибке закрывалось только тогда, когда пользователь закрывает крестик.Может кто-нибудь сказать мне, как это сделать?Любая помощь будет оценена.Спасибо.