7
我试图让Bootstrap Notify提醒保持可见状态,直到用户将其解除为止,并且没有自动关闭。为此,根据我对文档的理解,我将delay
设置为0
。这是bootstrap-notify.js
后,包括我的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);
};
编辑:
我已经想通了,合作ntroller动作在返回视图结果之前将SignalR消息推送给客户端。因此,客户端立即收到SignalR消息并显示警报,只有通过返回的视图刷新页面,才能快速删除警报。我仍然不知道如何解决这个问题。
tr重现错误的地方,我们可以看到和调试它。或者如果您的页面处于活动状态,请提供链接 –
“在返回视图结果之前将SignalR消息推送到客户端”<<不返回视图/刷新页面。如果页面刷新,当前页面的JS不能(合理)执行任何操作。听起来像'SingnalR'消息可以包含一个URL(如果它不同于当前的) - 从服务器发送到'toasterNotify'作为第三参数。一旦用户点击模式,他们将转到该URL(我相信 - 基于我在这里阅读的文档:http://bootstrap-notify.remabledesigns.com/)。不要去'#' - 这不会重新加载你的视图 - 使用文档当前位置。 – pherris
我认为你的努力只能通过一个页面应用完成 - 我假设你使用了一个多页面的.NET MVC应用程序,在整个页面被刷新的动作之间。你可以在某种视图中注入JS服务器端,为什么它需要来自'signalR' – Marty