Код ниже работает очень.Он может открывать и закрывать всплывающее окно сообщения.
Теперь я хочу убедиться, что любое открытое всплывающее окно сохраняется при обновлении страницы на основе его идентификатора.Я думаю, что это работа местного хранилища.
В jquery , я могу сделать это с кодом ниже.
<!doctype html>
<html>
<head>
<title></title>
<style>
.contact_box {
bottom: -5px;
height:200px;
background: black;
color: red;
border-radius: 5px 5px 0px 0px;
display: inline-block;
position: fixed;
width: 500px;
bottom: 0%
}
</style>
<script src='jquery-3.1.1.min.js' type='text/javascript'></script>
<script>
$(document).ready(function(){
var persist = localStorage.getItem('persist');
if(persist === 'true'){
$('#mydiv').show();
}
$("#display").click(function(event){
event.preventDefault();
$('#mydiv').show();
localStorage.setItem('persist', 'true');
});
$("#close").click(function(event){
event.preventDefault();
localStorage.removeItem('persist', 'false');
$('#mydiv').hide();
});
});
</script>
<div id="mydiv" class="contact_box" style="display:none;" >
<br> Message ....</br>
<br> Message ....</br>
<br> Message ....</br>
<br> Message ....</br>
<br> Message ....</br>
<br> Message ....</br>
</div>
<h1>Refresh Page after you click on persist button</h1>
<input type="button" value="Persist" id="display"/>
<input type="button" value="close" id="close"/>
</body>
</html>
В Angularjs , это функции, которые я создал, но просто запутался в том, как применить их к существующему коду ниже
// Persist any opened message box Div after page refresh using local storage
$scope.persistDiv = localStorage.getItem($scope.arr);
$scope.persistIt = function(id) {
if ($scope.arr[id].popStatus == true) {
$scope.arr[id].popStatus = false;
// set Local Storage for any open popup box via Id
localStorage.setItem(persistDiv);
} else {
$scope.arr[id].popStatus = true;
//remove local storage when a particular popup box is close
localStorage.removeItem(persistDiv);
}
}
Вот код Angularjs, который показывает всплывающее окно для различных пользователей
<!doctype html>
<html ng-app="myapp">
<head>
<title></title>
<style>
.sidebar {
width: 20%;
position: fixed;
height: 100%;
right: 0px;
top: 0px;
padding-top: 50px;
padding-bottom: 10px;
border: 1px solid #b2b2b2;
text-align: bottom;
}
.mainArea {
position: fixed;
width: 80%;
bottom: 0%
}
.contact_box {
position: relative;
bottom: -5px;
width: 250px;
// height:auto;
background: black;
color: red;
border-radius: 5px 5px 0px 0px;
bottom: 0px;
//right: 270px;
display: inline-block;
}
</style>
<script src="jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular.min.js"></script>
<script>
var app = angular.module('myapp', []);
app.controller('MainCtrl', function($scope) {
$scope.arr = [
{ name: "user1", popStatus: false, hideBox: false },
{ name: "user2", popStatus: false, hideBox: false },
{ name: "user3", popStatus: false, hideBox: false },
{ name: "user4", popStatus: false, hideBox: false }
];
//pop div
$scope.popIt = function(id) {
if ($scope.arr[id].popStatus == true) {
$scope.arr[id].popStatus = false
} else {
$scope.arr[id].popStatus = true;
}
}
//hideUnhide message box
$scope.hideUnhideIt = function(id) {
($scope.arr[id].hideBox == true) ? $scope.arr[id].hideBox = false: $scope.arr[id].hideBox = true;
}
});
</script>
</head>
<body>
<div ng-app="myapp" ng-controller="MainCtrl">
<div class="sidebar">
<ul>
<li ng-repeat='ret in arr track by $index'>
<div ng-click="popIt($index)">
{{ret.name}}
<!-- hide:{{ret.hideBox}} -->
<br><br>
</div>
</li>
</ul>
</div>
<div class='mainArea'>
<ng-controller ng-repeat='ret in arr track by $index'>
<div ng-if="ret.popStatus == true" class="contact_box">
<button style="float:right" ng-click="popIt($index)">Close</button>
<button style="float:left" ng-click="hideUnhideIt($parent.$index)">hide/unhide</button>
<br>
<div ng-if="!ret.hideBox" style="height:auto;">
<b>Username:</b> {{ret.name}}
<br>Message .........<br>
<br>Message .........<br>
<br>Message .........<br>
<br>Message .........<br>
<br>Message .........<br>
<br>Message .........<br>
</div>
</div>
</ng-controller>
</div>
</div>
</body>
</html>