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