Я пытаюсь получить оповещение по уведомлению Bootstrap, чтобы оставаться видимым до тех пор, пока пользователь не отклонит его, без его автоматического закрытия. Для этого, согласно моему пониманию документации, я установил delay
в значение 0
. Это мой файл JS, который включен после bootstrap-notify.js
:Bootstrap Уведомить автозавершения, даже с задержкой, установленной на 0
$(function() {
var alertTemplate = $("#notify-template").html();
$.notifyDefaults({ target: "_self" }, { type: "warning", delay: 0, template: alertTemplate });
});
var toasterNotify = function (alertTitle, alertMessage, alertUrl) {
alertUrl = alertUrl || "#";
$.notify({ title: alertTitle, message: alertMessage, url: alertUrl }, { delay: 0 });
}
Эта toasterNotify
функция работает точно так же, как и ожидалось, когда я называю его непосредственно из click
события на кнопке в окне, но когда он вызывается из функции обратного вызова SignalR из сервер, как показано ниже, предупреждение закрывается почти мгновенно, как только она появится:
var hubProxy = $.connection.applicationHub;
hubProxy.client.alertNewClaim = function (model) {
toasterNotify(model.SourceFullName, model.Message);
};
EDIT:
я понял, что со Действие ntroller включает сообщение SignalR клиенту непосредственно перед возвратом результата представления. Таким образом, клиент немедленно получает сообщение SignalR и отображает предупреждение, только чтобы обновить страницу по возвращенному представлению, быстро удалив предупреждение. Я до сих пор не знаю, как обойти это.
tr, чтобы воспроизвести ошибку где-нибудь, где мы можем ее увидеть и отладить. или если ваша страница в прямом эфире, то укажите ссылку –
"толкает сообщение SignalR клиенту непосредственно перед возвратом результата просмотра" << не возвращает представление/обновление страницы. JS текущей страницы не может (разумно) делать что-либо, если страница обновляется. Похоже, что сообщение «SingnalR» может содержать URL-адрес (если он отличается от текущего) - отправьте это с вашего сервера на «toasterNotify» в качестве третьего параметра. После того, как пользователь нажмет на модальный, они перейдут на этот URL (я считаю - на основе документов, которые я читаю здесь: http://bootstrap-notify.remabledesigns.com/). Не переходите к '#', хотя - это не перезагрузит ваше представление - используйте текущее местоположение документов. – pherris
Я думаю, что ваши попытки выполнить можно сделать только с помощью одностраничного приложения - я предполагаю, что вы используете многостраничное приложение .NET MVC, где между действиями обновляется полная страница. Можете ли вы придать стороне сервера JS какой-то вид, почему он должен поступать из 'signalR' – Marty