2017-04-20 49 views
1

我正在laravel和angular js中工作。在laravel,我使用了事件廣播並使用推送通知。而在角度上,我已訂閱頻道並收到該通知。重新加載頁面時數據從變量中刪除

現在,我將推送器數據存儲到一個變量中,並將其顯示爲html。但是,當我重新加載頁面比通知被刪除。

角JS:

Pusher.logToConsole = true; 

var pusher = new Pusher('Pusher-key', { 
    cluster: 'ap2', 
    encrypted: true 
}); 

var channel = pusher.subscribe('ticket-'+$login_user_id); 
channel.bind('ticket-notification', function(data) { 
    var i = $scope.notification.length; 
    $scope.notification[i] = {"id":data.ticket.id,"subject":data.ticket.subject}; 
    $scope.total_notification = $scope.notification.length; 
    console.log($scope.total_notification); 
}); 

this.update_notification = function(notification_id,index) { 
    $scope.notification.splice(index,1); 
    $scope.total_notification = $scope.notification.length; 
} 

現在,我想存儲通知變量globally.So當我重裝比它不能對變量影響頁,並且還可以在其他瀏覽器中顯示。

那麼我該怎麼做?

回答

0

您可以將變量保存在瀏覽器的本地存儲中。所以它不會在刷新時被刪除。但是,您將無法從其他瀏覽器獲取該文件,因爲所有瀏覽器都基於域維護自己的本地存儲副本。如果是這種情況,您將不得不開發一些機制從服務器端獲取通知。

0

localStorage將是完美的。 將推送器數據設置爲localStorage。現在,無論何時重新加載頁面,都會從localStorage獲取存儲的數據。

Here你可以找到更多關於localStorage的信息。

+0

我不能在其他瀏覽器中使用它 –

+0

我猜「另一個瀏覽器」是指同一瀏覽器的新窗口。因爲如果沒有服務器,從Chrome瀏覽器向Firefox傳遞數據是不可能的。 – satinja

+0

可以使用PouchDB:https://www.tutorialspoint.com/pouchdb/pouchdb_read_document.htm 這對它有好處嗎? Cz我對此毫不知情。 –

相關問題